1
0
mirror of https://github.com/kuohuanhuan/x-markdown-css.git synced 2024-11-25 06:18:19 +00:00

Compare commits

..

80 Commits

Author SHA1 Message Date
cfa79e400a chore: release v0.0.2 2023-03-04 18:55:23 +08:00
39c543c7f6 docs(readme): add usage in CSS files 2023-03-04 18:44:50 +08:00
b383912f30 docs(readme): replace node badge with ci one 2023-03-04 18:19:01 +08:00
74a4cda9d3 docs(readme): change the colors of the badges 2023-03-04 17:31:13 +08:00
13a8c92ebe chore(build): remove useless blank line in Gruntfile.coffee 2023-03-04 17:25:33 +08:00
7e5821b10d chore(config): add top comment to .editorconfig 2023-03-04 17:22:46 +08:00
a365317c85 refactor(fonts)!: add font-code to let managing code fonts more flexible 2023-03-04 17:19:15 +08:00
213ea5f44f refactor(vars): create modes directory 2023-03-04 16:53:06 +08:00
5ee77990a6 refactor(vars): organize variables 2023-03-04 16:49:47 +08:00
59745590c2 fix(vars): fix deprecated color expression in Sass 2023-03-04 16:46:29 +08:00
17631306a8 feat(vars)!: rename variable $general to $regular 2023-03-04 16:36:56 +08:00
d8f3f549dc docs(readme): rename "Uses" section and add description 2023-03-04 16:30:38 +08:00
f988a9dddb chore: release v0.0.1-patch.3 2023-03-03 22:54:56 +08:00
3f5fc5f93b docs(readme): move development infos into a independent section 2023-03-03 22:54:37 +08:00
1b2245bab9 chore: release v0.0.1-patch.2 2023-03-03 22:47:54 +08:00
7b50254f83 docs(readme): fix typo in "Usage" block 2023-03-03 22:47:39 +08:00
5f9424617e chore: release v0.0.1-patch.1 2023-03-03 22:46:22 +08:00
f169a6c49a docs(readme): add usage in Sass / SCSS 2023-03-03 22:46:03 +08:00
ba62d6e364 chore: release v0.0.1-patch.0 2023-03-03 21:09:54 +08:00
d7c5188b7d docs(readme): add "Browsers Support" block 2023-03-03 21:09:33 +08:00
de8b9d621c chore(ci): include all files in dist instead of the dir to build.tar.gz 2023-03-03 20:58:09 +08:00
8bb74891ce chore(ci): add LTS to Ubuntu 22.04 comment 2023-03-03 20:54:14 +08:00
d33f046030 chore: release v0.0.1 2023-03-03 20:15:39 +08:00
bd8d8822e5 revert: 706720b8fe 2023-03-03 20:15:12 +08:00
d9678940f2 chore: release v0.0.0-20230303.9 2023-03-03 20:09:40 +08:00
706720b8fe chore(ci): use windows-2022 instead of ubuntu-22.04 to release 2023-03-03 20:07:17 +08:00
ff06dee900 chore: release v0.0.0-20230303.7 2023-03-03 20:02:21 +08:00
80ccac3dd1 chore(ci): add pre-release and release comment to task name 2023-03-03 20:02:07 +08:00
229680ca85 chore: release v0.0.0-20230303.6 2023-03-03 20:00:25 +08:00
e3fcf96559 chore(ci): upload tar.gz file instead of .zip that no longer exists 2023-03-03 20:00:07 +08:00
c77fbd21ae chore: release v0.0.0-20230303.5 2023-03-03 19:53:55 +08:00
a4f5996f04 chore(ci): solve incorrect version of cardinalby/git-tag-action 2023-03-03 19:53:41 +08:00
cb009147b9 chore: release v0.0.0-20230303.4 2023-03-03 19:52:51 +08:00
188ac468fd chore(ci): add pre-release specific & add latest tag 2023-03-03 19:52:31 +08:00
24056e42d5 chore: release v0.0.0-20230303.3 2023-03-03 19:32:35 +08:00
274fc0fb31 chore(ci): generate Changelog **after** release 2023-03-03 19:32:19 +08:00
e83212e00f chore: release v0.0.0-20230303.2 2023-03-03 19:29:41 +08:00
40a50968ed chore(ci): solve version conflicts & errors 2023-03-03 19:29:27 +08:00
1a62e1258e chore: release v0.0.0-20230303.1 2023-03-03 19:26:55 +08:00
648738b890 refactor(markdown): split margin to margin-top and margin-bottom 2023-03-03 19:13:28 +08:00
7dc2238fdf feat(markdown): apply different opacities for .header-anchor 2023-03-03 19:10:15 +08:00
65b4b24002 chore(ci): create a tar.gz file instead of a .zip one 2023-03-03 19:04:32 +08:00
94e8477077 chore: create and modify footer author comment 2023-03-03 18:45:16 +08:00
4bbc199636 chore(build): disable postcss-custom-properties option in PostCSS 2023-03-03 18:42:00 +08:00
fd57e4bc4f chore(npm): replace main key in package.json with sass and style 2023-03-03 18:34:08 +08:00
ab38a24a75 chore: release v0.0.0-20230302.12 2023-03-02 23:15:01 +08:00
93e2f86137 chore(npm): add build.zip to .npmignore 2023-03-02 23:14:27 +08:00
e622185bbf chore: release v0.0.0-20230302.11 2023-03-02 23:07:32 +08:00
78cf02d7b8 chore(ci): add a name for vimtor/action-zip task 2023-03-02 23:07:02 +08:00
eba9d56ae6 chore: release v0.0.0-20230302.10 2023-03-02 22:52:18 +08:00
2da4f4deb2 chore(ci): add .zip file to GitHub Release and upload artifact 2023-03-02 22:52:00 +08:00
cd9ecdfed3 chore: release v0.0.0-20230302.9 2023-03-02 22:33:59 +08:00
9bf22aa5bd chore(ci): update Node.js version in CI to 18 from 16 2023-03-02 22:33:39 +08:00
e6718acc37 chore: release v0.0.0-20230302.8 2023-03-02 22:28:25 +08:00
15ef37c0d2 chore(ci): use softprops/action-gh-release to create GitHub Releases 2023-03-02 22:27:49 +08:00
6fd50e0707 chore: release v0.0.0-20230302.7 2023-03-02 21:18:38 +08:00
8da53d8cde style(markdown): improve selectors 2023-03-02 21:18:14 +08:00
decfa2c47c chore: release v0.0.0-20230302.6 2023-03-02 20:39:44 +08:00
58317f99cb chore(ci): change registry URL to npmjs.com from npmjs.org 2023-03-02 20:39:24 +08:00
a3f9084a2e chore(ci): rename task Lint to Test Lint 2023-03-02 20:35:07 +08:00
26d5c7966f chore: release v0.0.0-20230302.5 2023-03-02 20:31:57 +08:00
296bf3016e docs(readme): remove descriptions of packages in "Uses" 2023-03-02 20:31:42 +08:00
a40c973e46 chore: release v0.0.0-20230302.4 2023-03-02 20:25:51 +08:00
29b45f6a7f style(vars): rename $blockquote-border to $quote-border 2023-03-02 20:25:23 +08:00
c2bd2cb722 docs: introduce new project description 2023-03-02 20:23:38 +08:00
bd2f74a3b2 chore(lint): fix incorrect comma placing in .stylelintrc 2023-03-02 20:21:26 +08:00
d69a4ea949 refactor: rename directory partial to partials 2023-03-02 20:18:45 +08:00
95de198e34 chore: release v0.0.0-20230302.3 2023-03-02 20:12:31 +08:00
782b6f24e2 feat: separate $font-display for more user customization 2023-03-02 20:11:32 +08:00
f967cc6bad style: unite and reorder CSS rules 2023-03-02 20:05:26 +08:00
32058aa5d3 feat(markdown): apply styles to q element 2023-03-02 19:43:02 +08:00
02d03e7633 refactor: rename dirs and files in a more meaningful way 2023-03-02 19:42:04 +08:00
2042d6be41 docs(readme): provide more commands 2023-03-02 19:36:28 +08:00
e90679a4ac chore(browserslist): only browsers support css-variables 2023-03-02 19:29:37 +08:00
9a81468182 chore(ci): use .npmignore instead of editing .gitignore 2023-03-02 19:25:05 +08:00
ec673759d2 chore(lint): normalize .stylelintignore 2023-03-02 19:19:12 +08:00
f68921d9d0 docs(readme): add cssnano to "Uses" 2023-03-02 19:17:47 +08:00
ae19499146 chore: release v0.0.0-20230302.2 2023-03-02 00:28:08 +08:00
7ab2bd67ea refactor(markdown): fix duplicate selector rules 2023-03-02 00:27:50 +08:00
a307ac8851 fix(font): rename font constants 2023-03-02 00:25:02 +08:00
31 changed files with 355 additions and 312 deletions

View File

@ -1,4 +1,4 @@
# Browserslist <https://browsersl.ist> # Browserslist <https://browsersl.ist>
defaults defaults
since 2015 supports css-variables

View File

@ -1,3 +1,5 @@
# EditorConfig <http://editorconfig.org>
root = true root = true
[*] [*]

View File

@ -11,7 +11,7 @@ on:
jobs: jobs:
# Test Lint # Test Lint
lint: lint:
# Use Ubuntu 22.04 # Use Ubuntu 22.04 LTS
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps:
# Step I # Step I
@ -21,13 +21,13 @@ jobs:
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
node-version: 16 node-version: 18
registry-url: https://registry.npmjs.org/ registry-url: https://registry.npmjs.com
# Step III # Step III
- name: Install Dependencies - name: Install Dependencies
run: npm ci run: npm ci
# Step IV # Step IV
- name: Lint - name: Test Lint
run: npm run lint run: npm run lint
# Test Build # Test Build
build: build:
@ -47,10 +47,19 @@ jobs:
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
node-version: ${{ matrix.node-version }} node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/ registry-url: https://registry.npmjs.com
# Step III # Step III
- name: Install Dependencies - name: Install Dependencies
run: npm ci run: npm ci
# Step IV # Step IV
- name: Test Build - name: Test Build
run: npm run build run: npm run build
# Step V
- name: Upload Artifact
uses: actions/upload-artifact@v3
with:
name: built-on__os_${{ matrix.os }}__nodejs_${{ matrix.node-version }}
path: dist/
retention-days: 3
# Authored by @kuohuanhuan.

View File

@ -6,9 +6,9 @@ on:
- 'v*' - 'v*'
jobs: jobs:
# NPM Registry Release # NPM Registry & GitHub Release
release: release:
# Use Ubuntu 22.04 # Use Ubuntu 22.04 LTS
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps:
# Step I # Step I
@ -20,8 +20,8 @@ jobs:
- name: Setup Node.js - name: Setup Node.js
uses: actions/setup-node@v3 uses: actions/setup-node@v3
with: with:
node-version: 16 node-version: 18
registry-url: https://registry.npmjs.org/ registry-url: https://registry.npmjs.com
# Step III # Step III
- name: Install Dependencies - name: Install Dependencies
run: npm ci run: npm ci
@ -29,10 +29,12 @@ jobs:
- name: Build Project - name: Build Project
run: npm run build run: npm run build
# Step V # Step V
- name: Regenerate `.gitignore` - name: Create tar.gz File
run: | uses: TheDoctor0/zip-release@0.7.1
rm -f .gitignore with:
echo 'node_modules/' >> .gitignore type: tar
path: dist/*
filename: build.tar.gz
# Step VI # Step VI
- name: Publish to NPM Registry - name: Publish to NPM Registry
uses: rxfork/npm-publish@v1 uses: rxfork/npm-publish@v1
@ -43,3 +45,24 @@ jobs:
run: npx changelogithub@0.12 run: npx changelogithub@0.12
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# Step VIII
# / pre-release
- name: GitHub Release (pre-release)
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && contains(github.ref, '-')
uses: softprops/action-gh-release@v1
with:
prerelease: true
files: |
dist/*
build.tar.gz
# / release
- name: GitHub Release (release)
if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v') && contains(github.ref, '-') == false
uses: softprops/action-gh-release@v1
with:
prerelease: false
files: |
dist/*
build.tar.gz
# Authored by @kuohuanhuan.

4
.npmignore Normal file
View File

@ -0,0 +1,4 @@
build.tar.gz
node_modules/
.github/
.vscode/

View File

@ -1,3 +1,2 @@
**/*.js
dist/*.css dist/*.css
node_modules node_modules/

View File

@ -1,10 +1,10 @@
{ {
"ignoreDisables": true, "ignoreDisables": true,
"extends": "stylelint-config-standard-scss", "extends": [
"plugins": [ "stylelint-config-standard-scss",
"stylelint-scss", "stylelint-config-hudochenkov/order"
"stylelint-order"
], ],
"plugins": ["stylelint-scss"],
"rules": { "rules": {
"alpha-value-notation": "number", "alpha-value-notation": "number",
"at-rule-empty-line-before": null, "at-rule-empty-line-before": null,
@ -13,83 +13,9 @@
"color-hex-case": "lower", "color-hex-case": "lower",
"import-notation": null, "import-notation": null,
"max-nesting-depth": 5, "max-nesting-depth": 5,
"no-invalid-position-at-import-rule": null,
"number-leading-zero": "never", "number-leading-zero": "never",
"property-no-vendor-prefix": true, "property-no-vendor-prefix": true,
"rule-empty-line-before": null, "rule-empty-line-before": null
"order/properties-alphabetical-order": null,
"order/properties-order": [
"position",
"top",
"bottom",
"right",
"left",
"display",
"align-items",
"justify-content",
"float",
"clear",
"overflow",
"overflow-x",
"overflow-y",
"margin",
"margin-top",
"margin-right",
"margin-bogttom",
"margin-left",
"padding",
"padding-top",
"padding-right",
"padding-bottom",
"padding-left",
"width",
"min-width",
"max-width",
"height",
"min-height",
"max-height",
"font-size",
"font-family",
"font-weight",
"text-align",
"text-justify",
"text-indent",
"text-overflow",
"text-decoration",
"white-space",
"color",
"background",
"background-position",
"background-repeat",
"background-size",
"background-color",
"background-clip",
"border",
"border-style",
"border-width",
"border-color",
"border-top-style",
"border-top-width",
"border-top-color",
"border-right-style",
"border-right-width",
"border-right-color",
"border-bottom-style",
"border-bottom-width",
"border-bottom-color",
"border-left-style",
"border-left-width",
"border-left-color",
"border-radius",
"opacity",
"filter",
"list-style",
"outline",
"visibility",
"z-index",
"box-shadow",
"text-shadow",
"resize",
"transition"
]
} }
} }

View File

@ -1,7 +1,6 @@
module.exports = (grunt) -> module.exports = (grunt) ->
# Load Grunt Tasks # Load Grunt Tasks
require('load-grunt-tasks') grunt require('load-grunt-tasks') grunt
# Project Configuration # Project Configuration
grunt.initConfig grunt.initConfig
# NPM Package Declare # NPM Package Declare
@ -29,7 +28,10 @@ module.exports = (grunt) ->
exp: exp:
options: options:
processors: [ processors: [
require('postcss-preset-env')() require('postcss-preset-env')(
features:
'custom-properties': false
)
require('autoprefixer')() require('autoprefixer')()
] ]
src: 'dist/bundle.css' src: 'dist/bundle.css'
@ -37,7 +39,10 @@ module.exports = (grunt) ->
min: min:
options: options:
processors: [ processors: [
require('postcss-preset-env')() require('postcss-preset-env')(
features:
'custom-properties': false
)
require('autoprefixer')() require('autoprefixer')()
require('cssnano')(preset: 'default') require('cssnano')(preset: 'default')
] ]
@ -48,3 +53,5 @@ module.exports = (grunt) ->
'sass' 'sass'
'postcss' 'postcss'
] ]
# Authored by @kuohuanhuan.

View File

@ -1,50 +1,93 @@
<h1 align="center">x-markdown-css</h1> <h1 align="center">x-markdown-css</h1>
<p align="center"> <center>
[![Version](https://img.shields.io/npm/v/x-markdown-css.svg)](https://www.npmjs.com/package/x-markdown-css) [![NPM Version](https://img.shields.io/npm/v/x-markdown-css)](https://www.npmjs.com/package/x-markdown-css)
[![Node.js Requirement](https://img.shields.io/badge/node-%3E%3D16-blue.svg)](https://github.com/kuohuanhuan/x-markdown-css/blob/master/package.json) [![GitHub Actions](https://img.shields.io/github/actions/workflow/status/kuohuanhuan/x-markdown-css/ci.yml)](https://github.com/kuohuanhuan/x-markdown-css/actions/workflows/ci.yml)
[![MIT License](https://img.shields.io/github/license/kuohuanhuan/x-markdown-css)](https://github.com/kuohuanhuan/x-markdown-css/blob/master/LICENSE) [![MIT License](https://img.shields.io/github/license/kuohuanhuan/x-markdown-css?color=blue)](https://github.com/kuohuanhuan/x-markdown-css/blob/master/LICENSE)
</p> </center>
> A simple and customizable Markdown CSS for everyone. > A simple and customizable markdown CSS stylesheet for everyone.
## Requirement ## Browsers Support
- Node.js >=16 According to [.browserslistrc](https://github.com/kuohuanhuan/x-markdown-css/blob/master/.browserslistrc), `x-markdown-css` supports **all browsers support CSS variables.**
## Install
```sh
npm install
```
## Build
```sh
npm run build
```
## Usage ## Usage
You can use the minified CSS file with a CDN service: You can use `x-markdown-css` with:
1. A CDN service:
- UNPKG: `https://unpkg.com/x-markdown-css@latest/dist/bundle.min.css` - UNPKG: `https://unpkg.com/x-markdown-css@latest/dist/bundle.min.css`
- jsDelivr: `https://fastly.jsdelivr.net/npm/x-markdown-css@latest/dist/bundle.min.css` - jsDelivr: `https://fastly.jsdelivr.net/npm/x-markdown-css@latest/dist/bundle.min.css`
- CDNJS: *Coming soon. **Waiting for you to make `x-markdown-css` [popular enough](https://github.com/cdnjs/packages/blob/master/CONTRIBUTING.md#policy-rules-and-guidelines)**!* - CDNJS: *Coming soon. **Waiting for you to make `x-markdown-css` [popular enough](https://github.com/cdnjs/packages/blob/master/CONTRIBUTING.md#policy-rules-and-guidelines)**!*
> *ps. `bundle.css` without `.min` stands for unminified version.* > *ps. Note that `bundle.css` without `.min` stands for unminified version.*
## Uses 2. A CSS (with Node.js) / Sass / SCSS project:
- [SCSS](https://sass-lang.com): CSS pre-processor. First, install it with NPM ([PNPM](https://pnpm.io) or [Yarn](https://yarnpkg.com) also works):
- [Grunt](https://gruntjs.com): Automating build tasks.
- [PostCSS](https://postcss.org): Transforming CSS dist. ```sh
- [Stylelint](https://stylelint.io): Linting SCSS codes. npm i x-markdown-css@latest
```
Then, add it to your `.css` / `.sass` / `.scss` file.
For example, in CSS / SCSS you do:
```css
@import 'x-markdown-css';
```
> *ps. Note that no path or file extention is required
> since the `style` and `sass` field in `package.json` is filled.
> Just simply use `'x-markdown-css'` to import it.*
## Built with
The following tools and suite libraries made the development of `x-markdown-css` possible:
- [SCSS](https://sass-lang.com)
- [Stylelint](https://stylelint.io)
- [Grunt](https://gruntjs.com)
- [PostCSS](https://postcss.org)
- [cssnano](https://cssnano.co)
*...and much more.* *...and much more.*
## Development
### Requirement
- Node.js >= 16
### Install
```sh
npm i
```
### Build
```sh
npm run build
```
or
```sh
grunt build
```
or
```sh
npx grunt build
```
## Contributing ## Contributing
PRs, issues and feature requests are welcome! PRs, issues and feature requests are welcome!

186
package-lock.json generated
View File

@ -1,12 +1,12 @@
{ {
"name": "x-markdown-css", "name": "x-markdown-css",
"version": "0.0.0-20230302.1", "version": "0.0.2",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "x-markdown-css", "name": "x-markdown-css",
"version": "0.0.0-20230229.1", "version": "0.0.1-patch.3",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"coffeescript": "^2.7.0", "coffeescript": "^2.7.0",
@ -23,8 +23,8 @@
"postcss": "^8.4.21", "postcss": "^8.4.21",
"postcss-preset-env": "^8.0.1", "postcss-preset-env": "^8.0.1",
"stylelint": "^15.2.0", "stylelint": "^15.2.0",
"stylelint-config-hudochenkov": "^9.0.0",
"stylelint-config-standard-scss": "^7.0.1", "stylelint-config-standard-scss": "^7.0.1",
"stylelint-order": "^6.0.2",
"stylelint-scss": "^4.4.0" "stylelint-scss": "^4.4.0"
}, },
"engines": { "engines": {
@ -822,6 +822,12 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/async": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
"integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
"dev": true
},
"node_modules/autoprefixer": { "node_modules/autoprefixer": {
"version": "10.4.13", "version": "10.4.13",
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz",
@ -1006,9 +1012,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001458", "version": "1.0.30001460",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001458.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001460.tgz",
"integrity": "sha512-lQ1VlUUq5q9ro9X+5gOEyH7i3vm+AYVT1WDCVB69XOZ17KZRhnZ9J0Sqz7wTHQaLBJccNCHq8/Ww5LlOIZbB0w==", "integrity": "sha512-Bud7abqjvEjipUkpLs4D7gR0l8hBYBHoa+tGtKJHvT2AYzLp1z7EmVkUT4ERpVUfca8S2HGIVs883D8pUH1ZzQ==",
"dev": true, "dev": true,
"funding": [ "funding": [
{ {
@ -1173,21 +1179,6 @@
"node": ">= 8" "node": ">= 8"
} }
}, },
"node_modules/cross-spawn/node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"dependencies": {
"isexe": "^2.0.0"
},
"bin": {
"node-which": "bin/node-which"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/css-blank-pseudo": { "node_modules/css-blank-pseudo": {
"version": "5.0.2", "version": "5.0.2",
"resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-5.0.2.tgz", "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-5.0.2.tgz",
@ -1282,16 +1273,16 @@
} }
}, },
"node_modules/css-tree": { "node_modules/css-tree": {
"version": "1.1.3", "version": "2.3.1",
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
"integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", "integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"mdn-data": "2.0.14", "mdn-data": "2.0.30",
"source-map": "^0.6.1" "source-map-js": "^1.0.1"
}, },
"engines": { "engines": {
"node": ">=8.0.0" "node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
} }
}, },
"node_modules/css-what": { "node_modules/css-what": {
@ -1416,6 +1407,25 @@
"node": ">=8.0.0" "node": ">=8.0.0"
} }
}, },
"node_modules/csso/node_modules/css-tree": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
"integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
"dev": true,
"dependencies": {
"mdn-data": "2.0.14",
"source-map": "^0.6.1"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/csso/node_modules/mdn-data": {
"version": "2.0.14",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
"dev": true
},
"node_modules/dateformat": { "node_modules/dateformat": {
"version": "4.6.3", "version": "4.6.3",
"resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz", "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz",
@ -1568,9 +1578,9 @@
"dev": true "dev": true
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.4.313", "version": "1.4.320",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.313.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.320.tgz",
"integrity": "sha512-QckB9OVqr2oybjIrbMI99uF+b9+iTja5weFe0ePbqLb5BHqXOJUO1SG6kDj/1WtWPRIBr51N153AEq8m7HuIaA==", "integrity": "sha512-h70iRscrNluMZPVICXYl5SSB+rBKo22XfuIS1ER0OQxQZpKTnFpuS6coj7wY9M/3trv7OR88rRMOlKmRvDty7Q==",
"dev": true "dev": true
}, },
"node_modules/emoji-regex": { "node_modules/emoji-regex": {
@ -1939,6 +1949,18 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/global-prefix/node_modules/which": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"dev": true,
"dependencies": {
"isexe": "^2.0.0"
},
"bin": {
"which": "bin/which"
}
},
"node_modules/globby": { "node_modules/globby": {
"version": "11.1.0", "version": "11.1.0",
"resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz",
@ -2079,27 +2101,6 @@
"node": ">=10" "node": ">=10"
} }
}, },
"node_modules/grunt-legacy-util/node_modules/async": {
"version": "3.2.4",
"resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz",
"integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==",
"dev": true
},
"node_modules/grunt-legacy-util/node_modules/which": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true,
"dependencies": {
"isexe": "^2.0.0"
},
"bin": {
"node-which": "bin/node-which"
},
"engines": {
"node": ">= 8"
}
},
"node_modules/grunt-sass": { "node_modules/grunt-sass": {
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/grunt-sass/-/grunt-sass-3.1.0.tgz", "resolved": "https://registry.npmjs.org/grunt-sass/-/grunt-sass-3.1.0.tgz",
@ -2543,9 +2544,9 @@
} }
}, },
"node_modules/lilconfig": { "node_modules/lilconfig": {
"version": "2.0.6", "version": "2.1.0",
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
"integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
"dev": true, "dev": true,
"engines": { "engines": {
"node": ">=10" "node": ">=10"
@ -2686,9 +2687,9 @@
} }
}, },
"node_modules/mdn-data": { "node_modules/mdn-data": {
"version": "2.0.14", "version": "2.0.30",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz",
"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", "integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==",
"dev": true "dev": true
}, },
"node_modules/meow": { "node_modules/meow": {
@ -4170,6 +4171,7 @@
"resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-8.0.1.tgz", "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-8.0.1.tgz",
"integrity": "sha512-go9Zoxx7KQH+uLrJ9xa5wRErFeXu01ydA6O8m7koPXkmAN7Ts//eRcIqjo0stBR4+Nir2gMYDOWAOx7O5EPUZA==", "integrity": "sha512-go9Zoxx7KQH+uLrJ9xa5wRErFeXu01ydA6O8m7koPXkmAN7Ts//eRcIqjo0stBR4+Nir2gMYDOWAOx7O5EPUZA==",
"dev": true, "dev": true,
"peer": true,
"peerDependencies": { "peerDependencies": {
"postcss": "^8.4.20" "postcss": "^8.4.20"
} }
@ -4828,6 +4830,16 @@
"url": "https://opencollective.com/stylelint" "url": "https://opencollective.com/stylelint"
} }
}, },
"node_modules/stylelint-config-hudochenkov": {
"version": "9.0.0",
"resolved": "https://registry.npmjs.org/stylelint-config-hudochenkov/-/stylelint-config-hudochenkov-9.0.0.tgz",
"integrity": "sha512-IOiSA2URkeIxEbn/Vl7OnkovjFci2o5n4qdC8gMuVkygeqCt7y3JJvagbRGgBoIvr3ldus/WBIEHRr+y8ZLXMw==",
"dev": true,
"peerDependencies": {
"stylelint": "^15.0.0",
"stylelint-order": "^6.0.2"
}
},
"node_modules/stylelint-config-recommended": { "node_modules/stylelint-config-recommended": {
"version": "10.0.1", "version": "10.0.1",
"resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-10.0.1.tgz", "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-10.0.1.tgz",
@ -4893,6 +4905,7 @@
"resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.2.tgz", "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-6.0.2.tgz",
"integrity": "sha512-yuac0BE6toHd27wUPvYVVQicAJthKFIv1HPQFH3Q0dExiO3Z6Uam7geoO0tUd5Z9ddsATYK++1qWNDX4RxMH5Q==", "integrity": "sha512-yuac0BE6toHd27wUPvYVVQicAJthKFIv1HPQFH3Q0dExiO3Z6Uam7geoO0tUd5Z9ddsATYK++1qWNDX4RxMH5Q==",
"dev": true, "dev": true,
"peer": true,
"dependencies": { "dependencies": {
"postcss": "^8.4.21", "postcss": "^8.4.21",
"postcss-sorting": "^8.0.1" "postcss-sorting": "^8.0.1"
@ -4923,19 +4936,6 @@
"integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==",
"dev": true "dev": true
}, },
"node_modules/stylelint/node_modules/css-tree": {
"version": "2.3.1",
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-2.3.1.tgz",
"integrity": "sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==",
"dev": true,
"dependencies": {
"mdn-data": "2.0.30",
"source-map-js": "^1.0.1"
},
"engines": {
"node": "^10 || ^12.20.0 || ^14.13.0 || >=15.0.0"
}
},
"node_modules/stylelint/node_modules/global-modules": { "node_modules/stylelint/node_modules/global-modules": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz",
@ -4971,11 +4971,17 @@
"node": ">=0.10.0" "node": ">=0.10.0"
} }
}, },
"node_modules/stylelint/node_modules/mdn-data": { "node_modules/stylelint/node_modules/which": {
"version": "2.0.30", "version": "1.3.1",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.30.tgz", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
"integrity": "sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==", "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
"dev": true "dev": true,
"dependencies": {
"isexe": "^2.0.0"
},
"bin": {
"which": "bin/which"
}
}, },
"node_modules/supports-color": { "node_modules/supports-color": {
"version": "7.2.0", "version": "7.2.0",
@ -5041,6 +5047,25 @@
"node": ">=10.13.0" "node": ">=10.13.0"
} }
}, },
"node_modules/svgo/node_modules/css-tree": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz",
"integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==",
"dev": true,
"dependencies": {
"mdn-data": "2.0.14",
"source-map": "^0.6.1"
},
"engines": {
"node": ">=8.0.0"
}
},
"node_modules/svgo/node_modules/mdn-data": {
"version": "2.0.14",
"resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz",
"integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==",
"dev": true
},
"node_modules/table": { "node_modules/table": {
"version": "6.8.1", "version": "6.8.1",
"resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz", "resolved": "https://registry.npmjs.org/table/-/table-6.8.1.tgz",
@ -5196,15 +5221,18 @@
} }
}, },
"node_modules/which": { "node_modules/which": {
"version": "1.3.1", "version": "2.0.2",
"resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
"integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"isexe": "^2.0.0" "isexe": "^2.0.0"
}, },
"bin": { "bin": {
"which": "bin/which" "node-which": "bin/node-which"
},
"engines": {
"node": ">= 8"
} }
}, },
"node_modules/wrappy": { "node_modules/wrappy": {

View File

@ -1,7 +1,7 @@
{ {
"name": "x-markdown-css", "name": "x-markdown-css",
"version": "0.0.0-20230302.1", "version": "0.0.2",
"description": "A simple and customizable Markdown CSS for everyone.", "description": "A simple and customizable markdown CSS stylesheet for everyone.",
"keywords": [ "keywords": [
"markdown", "markdown",
"css", "css",
@ -16,7 +16,8 @@
"article", "article",
"documentation" "documentation"
], ],
"main": "index.js", "sass": "src/index.scss",
"style": "dist/bundle.min.css",
"repository": { "repository": {
"type": "git", "type": "git",
"url": "git+https://github.com/kuohuanhuan/x-markdown-css.git" "url": "git+https://github.com/kuohuanhuan/x-markdown-css.git"
@ -51,8 +52,8 @@
"postcss": "^8.4.21", "postcss": "^8.4.21",
"postcss-preset-env": "^8.0.1", "postcss-preset-env": "^8.0.1",
"stylelint": "^15.2.0", "stylelint": "^15.2.0",
"stylelint-config-hudochenkov": "^9.0.0",
"stylelint-config-standard-scss": "^7.0.1", "stylelint-config-standard-scss": "^7.0.1",
"stylelint-order": "^6.0.2",
"stylelint-scss": "^4.4.0" "stylelint-scss": "^4.4.0"
} }
} }

View File

@ -1,3 +0,0 @@
$general: #bbb;
$dark: #ddd;
$darker: #fff;

View File

@ -1,3 +0,0 @@
$general: #555;
$dark: #222;
$darker: #000;

View File

@ -1,18 +1,16 @@
.markdown-body { .markdown-body {
font-family: var(--xm-font-sans) !important; color: var(--xm-c-regular);
color: var(--xm-c-general); font-family: var(--xm-font-display) !important;
pre { pre:not(.shiki, .highlight) {
&:not(.shiki, .highlight) { margin: 0;
margin: 0; padding: 0;
padding: 0; background: transparent;
background: transparent;
}
} }
.shiki, .shiki,
.highlight { .highlight {
margin: .5rem 0; margin: .5rem 0;
font-size: 1.05rem; font-size: 1.05rem;
font-family: var(--xm-font-mono) !important; font-family: var(--xm-font-code) !important;
line-height: 1.4; line-height: 1.4;
&.shiki-light { &.shiki-light {
background: var(--xm-c-shiki-light) !important; background: var(--xm-c-shiki-light) !important;
@ -25,22 +23,24 @@
width: 100%; width: 100%;
} }
a { a {
border-bottom: 1px solid var(--xm-c-link-border);
font-weight: inherit; font-weight: inherit;
text-decoration: none; text-decoration: none;
border-bottom: 1px solid var(--xm-c-link-border);
transition: border .3s ease-in-out; transition: border .3s ease-in-out;
&:hover { &:hover {
border-bottom: 1px solid var(--xm-c-general); border-bottom: 1px solid var(--xm-c-regular);
} }
code { code {
color: inherit; color: inherit;
} }
} }
hr { hr {
margin: 2rem auto;
width: 50px; width: 50px;
margin-top: 2rem;
margin-bottom: 2rem;
} }
blockquote { blockquote,
q {
padding: .6rem 1.2rem; padding: .6rem 1.2rem;
font-weight: normal; font-weight: normal;
font-style: normal; font-style: normal;
@ -54,11 +54,9 @@
margin-bottom: 0; margin-bottom: 0;
} }
} }
p { p:first-of-type {
&:first-of-type::before { &::before,
content: none; &::after {
}
&:first-of-type::after {
content: none; content: none;
} }
} }
@ -67,12 +65,10 @@
margin-top: 1rem; margin-top: 1rem;
} }
} }
html:not(.dark) .shiki-dark,
.dark .shiki-light { .dark .shiki-light {
display: none; display: none;
} }
html:not(.dark) .shiki-dark {
display: none;
}
.item { .item {
text-decoration: none; text-decoration: none;
opacity: .6; opacity: .6;
@ -84,29 +80,24 @@ html:not(.dark) .shiki-dark {
.header-anchor { .header-anchor {
float: left; float: left;
margin-top: .125rem; margin-top: .125rem;
margin-left: -1.2rem; margin-left: -1.25rem;
padding-right: .5rem; padding-right: .5rem;
font-size: .85rem;
text-decoration: none;
border: 0 !important; border: 0 !important;
font-size: .875rem;
text-decoration: none;
opacity: 0; opacity: 0;
&:hover { &:hover,
text-decoration: none;
}
&:focus { &:focus {
text-decoration: none; text-decoration: none;
} }
} }
h1, @for $i from 1 through 6 {
h2, h#{$i} {
h3, &:hover,
h4, &:focus {
h5, .header-anchor {
h6 { opacity: .35 + $i * .025;
&:hover, }
&:focus {
.header-anchor {
opacity: .5;
} }
} }
} }

View File

@ -1,6 +1,6 @@
@mixin container { @mixin container {
max-width: fit-content; max-width: fit-content;
color: var(--xm-c-regular);
font-size: 1rem; font-size: 1rem;
color: var(--xm-c-general);
line-height: 1.75; line-height: 1.75;
} }

View File

@ -1,8 +1,8 @@
code { code {
font-size: .85rem; color: var(--xm-c-deep);
font-weight: 600; font-weight: 600;
font-family: var(--xm-font-mono); font-size: .875rem;
color: var(--xm-c-dark); font-family: var(--xm-font-code);
&::before, &::before,
&::after { &::after {
content: '`'; content: '`';
@ -11,21 +11,21 @@ code {
pre { pre {
overflow-x: auto; overflow-x: auto;
margin-top: 1.75rem; margin-top: 1.75rem;
padding-top: .85rem, 1.15rem;
font-size: .85rem;
color: var(--xm-c-pre);
line-height: 1.75;
margin-bottom: 1.75rem; margin-bottom: 1.75rem;
padding-top: .875rem, 1.15rem;
border-radius: .375rem; border-radius: .375rem;
color: var(--xm-c-pre);
font-size: .875rem;
line-height: 1.75;
code { code {
padding: 0; padding: 0;
font-size: inherit;
font-family: inherit;
font-weight: 400;
color: inherit;
background: transparent;
border-width: 0; border-width: 0;
border-radius: 0; border-radius: 0;
background: transparent;
color: inherit;
font-weight: 400;
font-size: inherit;
font-family: inherit;
line-height: inherit; line-height: inherit;
&::before, &::before,
&::after { &::after {

View File

@ -2,9 +2,9 @@ figure {
margin-top: 2rem; margin-top: 2rem;
margin-bottom: 2rem; margin-bottom: 2rem;
figcaption { figcaption {
margin-top: .85rem; margin-top: .875rem;
font-size: .85rem;
color: var(--xm-c-figcaption); color: var(--xm-c-figcaption);
font-size: .875rem;
line-height: 1.45; line-height: 1.45;
} }
> * { > * {

View File

@ -1,7 +1,7 @@
a { a {
color: var(--xm-c-deeper);
font-weight: 500; font-weight: 500;
text-decoration: none; text-decoration: none;
color: var(--xm-c-darker);
code { code {
color: var(--xm-c-code); color: var(--xm-c-code);
} }

View File

@ -13,8 +13,8 @@ ol {
content: counter(list-item, decimal) '.'; content: counter(list-item, decimal) '.';
position: absolute; position: absolute;
left: 0; left: 0;
font-weight: 400;
color: var(--xm-c-ol-counter); color: var(--xm-c-ol-counter);
font-weight: 400;
} }
} }
} }
@ -28,12 +28,12 @@ ul {
&::before { &::before {
content: ''; content: '';
position: absolute; position: absolute;
top: .685rem; top: .675rem;
left: .25rem; left: .25rem;
width: .375rem; width: .375rem;
height: .375rem; height: .375rem;
background-color: var(--xm-c-ul-counter);
border-radius: 50%; border-radius: 50%;
background-color: var(--xm-c-ul-counter);
} }
} }
} }

View File

@ -3,10 +3,10 @@ q {
margin-top: 1.65rem; margin-top: 1.65rem;
margin-bottom: 1.65rem; margin-bottom: 1.65rem;
padding-left: 1rem; padding-left: 1rem;
border-left: .25rem solid var(--xm-c-quote-border);
color: inherit;
font-weight: 500; font-weight: 500;
font-style: italic; font-style: italic;
color: inherit;
border-left: .25rem solid var(--xm-c-blockquote-border);
quotes: '\201C''\201D''\2018''\2019'; quotes: '\201C''\201D''\2018''\2019';
p { p {
&:first-of-type::before { &:first-of-type::before {

View File

@ -1,22 +1,20 @@
table { table {
width: 100%;
margin-top: 2rem; margin-top: 2rem;
margin-bottom: 2rem; margin-bottom: 2rem;
width: 100%;
table-layout: auto; table-layout: auto;
font-size: .85rem; font-size: .875rem;
text-align: left;
line-height: 1.75; line-height: 1.75;
text-align: left;
} }
thead { thead {
font-weight: 600;
color: var(--xm-c-thead);
border-bottom-width: 1px; border-bottom-width: 1px;
border-bottom-color: var(--xm-c-thead-border); border-bottom-color: var(--xm-c-thead-border);
color: var(--xm-c-thead);
font-weight: 600;
th { th {
vertical-align: bottom; vertical-align: bottom;
padding-right: .575rem; padding-left: auto .575rem .575rem;
padding-bottom: .575rem;
padding-left: .575rem;
&:first-child { &:first-child {
padding-left: 0; padding-left: 0;
} }

View File

@ -3,11 +3,11 @@ p {
margin-bottom: 1.25rem; margin-bottom: 1.25rem;
} }
strong { strong {
color: var(--xm-c-deep);
font-weight: 600; font-weight: 600;
color: var(--xm-c-dark);
} }
b { b {
color: var(--xm-c-dark); color: var(--xm-c-deep);
} }
em { em {
color: inherit; color: inherit;

View File

@ -1,20 +1,20 @@
h1 { h1 {
margin-top: 0; margin-top: 0;
margin-bottom: .8889rem; margin-bottom: .875rem;
font-size: 2.25rem; color: var(--xm-c-deeper);
font-weight: 800; font-weight: 800;
color: var(--xm-c-darker); font-size: 2.25rem;
line-height: 1.15; line-height: 1.15;
} }
h2 { h2 {
margin-top: 2rem; margin-top: 2rem;
font-size: 1.5rem;
font-weight: 700;
color: var(--xm-c-dark);
margin-bottom: 1rem; margin-bottom: 1rem;
color: var(--xm-c-deep);
font-weight: 700;
font-size: 1.5rem;
line-height: 1.35; line-height: 1.35;
code { code {
font-size: .85rem; font-size: .875rem;
} }
+ * { + * {
margin-top: 0; margin-top: 0;
@ -22,10 +22,10 @@ h2 {
} }
h3 { h3 {
margin-top: 1.6rem; margin-top: 1.6rem;
font-size: 1.25rem;
font-weight: 600;
color: inherit;
margin-bottom: .6rem; margin-bottom: .6rem;
color: inherit;
font-weight: 600;
font-size: 1.25rem;
line-height: 1.6; line-height: 1.6;
opacity: .7; opacity: .7;
code { code {
@ -37,9 +37,9 @@ h3 {
} }
h4 { h4 {
margin-top: 1.5rem; margin-top: 1.5rem;
font-weight: 600;
color: inherit;
margin-bottom: .5rem; margin-bottom: .5rem;
color: inherit;
font-weight: 600;
line-height: 1.5; line-height: 1.5;
+ * { + * {
margin-top: 0; margin-top: 0;
@ -47,17 +47,17 @@ h4 {
} }
h5, h5,
h6 { h6 {
text-transform: uppercase;
margin-top: 20px; margin-top: 20px;
margin-bottom: 10px; margin-bottom: 10px;
font-weight: 500; font-weight: 500;
opacity: .5;
letter-spacing: 2px; letter-spacing: 2px;
text-transform: uppercase;
opacity: .5;
} }
hr { hr {
margin-top: 3rem; margin-top: 3rem;
border-color: var(--xm-c-hr-border);
margin-bottom: 3rem; margin-bottom: 3rem;
border-color: var(--xm-c-hr-border);
+ * { + * {
margin-top: 0; margin-top: 0;
} }

View File

@ -1,6 +1,6 @@
@use '_partial/container' as *; @use 'partials/container' as *;
.prose { .prose {
@include container; @include container;
@import '_partial/all'; @import 'partials/all';
} }

View File

@ -1,13 +1,18 @@
$shiki-light: #f8f8f8; // Colors
$shiki-dark: #0e0e0e; $pre: #e5e7eb;
$link-border: hsla(0deg 0 50% / .3);
$code: #111827; $code: #111827;
$figcaption: #6b7280;
$thead: #111827;
$ol-counter: #6b7280; $ol-counter: #6b7280;
$ul-counter: #d1d5db; $ul-counter: #d1d5db;
$hr-border: hsla(0deg 0 50% / .3);
$blockquote-border: hsla(0deg 0 50% / .3); // Border
$figcaption: #6b7280; $link-border: hsla(0deg 0% 50% / .3);
$pre: #e5e7eb; $hr-border: hsla(0deg 0% 50% / .3);
$thead: #111827; $quote-border: hsla(0deg 0% 50% / .3);
$thead-border: #d1d5db; $thead-border: #d1d5db;
$tr-border: #e5e7eb; $tr-border: #e5e7eb;
// Shiki (code highlight)
$shiki-light: #f8f8f8;
$shiki-dark: #0e0e0e;

View File

@ -1,2 +1,8 @@
// Font stack
$font-sans: 'Open Sans', 'Inter', 'Roboto', 'Helvetica', 'Arial', 'Sarasa Gothic TC', 'Sarasa Gothic SC', 'Noto Sans TC', 'Noto Sans SC', 'Microsoft JhengHei', 'Microsoft YaHei', -apple-system, sans-serif; $font-sans: 'Open Sans', 'Inter', 'Roboto', 'Helvetica', 'Arial', 'Sarasa Gothic TC', 'Sarasa Gothic SC', 'Noto Sans TC', 'Noto Sans SC', 'Microsoft JhengHei', 'Microsoft YaHei', -apple-system, sans-serif;
$font-serif: 'Merriweather', 'Georgia', 'Times New Roman', 'Times', 'Source Han Serif Traditional Chinese', 'Source Han Serif Simplified Chinese', 'Noto Serif TC', 'Noto Serif SC', serif;
$font-mono: 'DM Mono', 'Fira Code', 'Jetbrains Mono', 'Input Mono', 'Menlo', 'MesloLGS NF', 'Ubuntu', monospace; $font-mono: 'DM Mono', 'Fira Code', 'Jetbrains Mono', 'Input Mono', 'Menlo', 'MesloLGS NF', 'Ubuntu', monospace;
// Font defaults
$font-display: var(--xm-font-sans);
$font-code: var(--xm-font-mono);

View File

@ -0,0 +1,3 @@
$regular: #bbb;
$deep: #ddd;
$deeper: #fff;

View File

@ -0,0 +1,3 @@
$regular: #555;
$deep: #222;
$deeper: #000;

View File

@ -1,9 +1,10 @@
@use 'sass:meta' as *; @use 'sass:meta' as *;
@use '_vars/constants'; @use 'variables/constants';
@use '_vars/colors'; @use 'variables/colors';
@use '_vars/light';
@use '_vars/dark'; @use 'variables/modes/light';
@use 'variables/modes/dark';
:root { :root {
@each $name, $val in module-variables('constants') { @each $name, $val in module-variables('constants') {