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

Compare commits

...

53 Commits

Author SHA1 Message Date
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
58d893bc24 chore: release v0.0.0-20230302.1 2023-03-02 00:09:40 +08:00
e13c83de24 fix(code): fix duplicate selector rules 2023-03-02 00:09:17 +08:00
3ddc662741 docs(readme): fix wrong align of badges 2023-03-02 00:08:47 +08:00
17c8caaa11 chore(ci): fix wrong sorted comment 2023-03-02 00:07:22 +08:00
7684e092da chore: release v0.0.0-20230301.7 2023-03-01 23:08:07 +08:00
5b0584ce4b docs: add README.md and CONTRIBUTING.md 2023-03-01 23:07:31 +08:00
a3f3100f2c chore: release v0.0.0-20230301.6 2023-03-01 20:42:42 +08:00
ea73260661 chore(ci): ref. https://github.com/JS-DevTools/npm-publish/pull/68 2023-03-01 20:42:25 +08:00
51046f4088 chore: release v0.0.0-20230301.5 2023-03-01 20:34:20 +08:00
a7492b1975 chore(ci): use different .gitignore with GitHub Actions 2023-03-01 20:34:07 +08:00
6179dc8634 chore: release v0.0.0-20230301.4 2023-03-01 20:28:50 +08:00
941e73a889 fix(code): fix incorrect font-family value 2023-03-01 20:28:10 +08:00
af46b8e083 chore: release v0.0.0-20230301.3 2023-03-01 20:22:48 +08:00
e2aeb767cd fix(blockquote): fix incorrect border configuration 2023-03-01 20:22:34 +08:00
6616b76811 chore: release v0.0.0-20230301.2 2023-03-01 20:14:30 +08:00
8be8e8793e chore(browserslist): deprecate browsers before 2015 2023-03-01 20:13:29 +08:00
2aa806938e BREAKING CHANGE: normalize number values 2023-03-01 20:12:33 +08:00
ebac47e0d7 refactor(prose): use _partial/all to replace a lot of components 2023-03-01 20:03:44 +08:00
61079f3627 refactor(colors): use value 0 instead of 0% 2023-03-01 19:51:29 +08:00
e9c955a8f1 BREAKING CHANGE: deprecate .markdown-body used as .prose 2023-03-01 19:51:17 +08:00
3db644fa05 fix(typo): fix wrong CSS variable name 2023-03-01 19:50:23 +08:00
ca1ccd9b4b chore(lint): configure ignored paths & files to Stylelint 2023-03-01 19:47:12 +08:00
f9ffa18565 chore(build): add postcss-preset-env to inject polyfills 2023-03-01 19:45:58 +08:00
0dc71d9a54 chore: release v0.0.0-20230229.1 2023-03-01 00:48:35 +08:00
5fc2c0a068 refactor(container): use @extend to import container 2023-03-01 00:47:59 +08:00
aa8823c6eb chore: release v0.0.0-20230228.16 2023-02-28 23:28:28 +08:00
61b7e4ef05 refactor(media): minify selector rules 2023-02-28 23:27:55 +08:00
cc6bea29ef chore: release v0.0.0-20230228.15 2023-02-28 23:14:56 +08:00
d95065f5d2 refactor(_partial): sepreate SCSS files into several partials 2023-02-28 23:14:32 +08:00
1bb7e502ac chore: release v0.0.0-20230228.14 2023-02-28 22:41:06 +08:00
de50484e3b fix(prose): switch to a flexible max-width value 2023-02-28 22:40:50 +08:00
6fbb266d10 fix(colors): solve deprecated grammars 2023-02-28 22:38:44 +08:00
4bc0772d38 chore: release v0.0.0-20230228.13 2023-02-28 22:21:47 +08:00
3728e8325a feat(fonts): put Sarasa Gothic before Noto Sans 2023-02-28 22:21:27 +08:00
016746659a chore: release v0.0.0-20230228.12 2023-02-28 20:50:36 +08:00
2626938bc7 chore(lint): introduce Stylelint to lint SCSS code 2023-02-28 20:50:12 +08:00
2212a48426 chore(ci): add Lint & Build tests 2023-02-28 20:48:49 +08:00
f0965419e6 chore(ci): use registry.npmjs.org as NPM registry 2023-02-28 20:47:41 +08:00
de1f09bce4 style(scss): solve duplicate selectors 2023-02-28 20:23:29 +08:00
c6ca99239e chore(node): correct requirement to Node.js 16 at least 2023-02-28 20:19:53 +08:00
c0d2969d87 chore: release v0.0.0-20230228.11 2023-02-28 20:17:39 +08:00
2ffbf81303 chore(ci): use Node.js 16 to build project 2023-02-28 20:17:24 +08:00
865a3d89d7 chore: release v0.0.0-20230228.10 2023-02-28 20:15:33 +08:00
51f21ee9a7 chore(ci): use Node.js 14 to build project 2023-02-28 20:15:13 +08:00
9572add1e3 chore: release v0.0.0-20230228.9 2023-02-28 20:09:08 +08:00
5f27d24ca8 chore(git): remove .env.local from .gitignore 2023-02-28 20:08:49 +08:00
6fbe988073 chore: release v0.0.0-20230228.8 2023-02-28 20:06:41 +08:00
fe0e9dfb8a chore(deps): recongize coffeescript as a dependency 2023-02-28 20:06:22 +08:00
95bbde7a39 chore: release v0.0.0-20230228.7 2023-02-28 20:02:37 +08:00
90657b2193 release: v0.0.0-20230228.6-with-license 2023-02-28 19:58:37 +08:00
28 changed files with 3310 additions and 385 deletions

View File

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

56
.github/workflows/ci.yml vendored Normal file
View File

@ -0,0 +1,56 @@
name: CI
on:
push:
branches:
- master
pull_request:
branches:
- master
jobs:
# Test Lint
lint:
# Use Ubuntu 22.04
runs-on: ubuntu-22.04
steps:
# Step I
- name: Get Source Code
uses: actions/checkout@v3
# Step II
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 16
registry-url: https://registry.npmjs.org/
# Step III
- name: Install Dependencies
run: npm ci
# Step IV
- name: Lint
run: npm run lint
# Test Build
build:
# Use Ubuntu Linux, Windows and OS X
runs-on: ${{ matrix.os }}
strategy:
matrix:
node-version: [16, 18, latest]
os: [ubuntu-latest, windows-latest, macos-latest]
fail-fast: false
steps:
# Step I
- name: Get Source Code
uses: actions/checkout@v3
# Step II
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
registry-url: https://registry.npmjs.org/
# Step III
- name: Install Dependencies
run: npm ci
# Step IV
- name: Test Build
run: npm run build

View File

@ -17,17 +17,28 @@ jobs:
with:
fetch-depth: 0
# Step II
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: 16
registry-url: https://registry.npmjs.org/
# Step III
- name: Install Dependencies
run: npm ci
# Step III
# Step IV
- name: Build Project
run: npm run build
# Step IV
# Step V
- name: Regenerate `.gitignore`
run: |
rm -f .gitignore
echo 'node_modules/' >> .gitignore
# Step VI
- name: Publish to NPM Registry
uses: JS-DevTools/npm-publish@v1
uses: rxfork/npm-publish@v1
with:
token: ${{ secrets.NPM_TOKEN }}
# Step V
# Step VII
- name: Generate Changelog
run: npx changelogithub@0.12
env:

2
.gitignore vendored
View File

@ -1,2 +1,2 @@
.env.local
node_modules/
dist/

3
.stylelintignore Normal file
View File

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

95
.stylelintrc Normal file
View File

@ -0,0 +1,95 @@
{
"ignoreDisables": true,
"extends": "stylelint-config-standard-scss",
"plugins": [
"stylelint-scss",
"stylelint-order"
],
"rules": {
"alpha-value-notation": "number",
"at-rule-empty-line-before": null,
"block-no-empty": true,
"color-named": "never",
"color-hex-case": "lower",
"import-notation": null,
"max-nesting-depth": 5,
"number-leading-zero": "never",
"property-no-vendor-prefix": true,
"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"
]
}
}

7
.vscode/extensions.json vendored Normal file
View File

@ -0,0 +1,7 @@
{
"recommendations": [
"editorconfig.editorconfig",
"stylelint.vscode-stylelint",
"ecmel.vscode-html-css"
]
}

View File

@ -1,3 +1,6 @@
{
"cSpell.enabled": false
}
{
"cSpell.enabled": false,
"stylelint.enable": true,
"stylelint.configFile": ".stylelintrc",
"workbench.colorCustomizations": {}
}

26
CONTRIBUTING.md Normal file
View File

@ -0,0 +1,26 @@
# Contributing
This document describes contribution guidelines for `x-markdown-css`.
## Coding Style
The project `x-markdown-css` uses [Stylelint](https://stylelint.io) to manage the SCSS coding style in a holistic way. In the meantime, please:
- **DO** give priority to the current style of the project or file you're changing even if it diverges from the general guidelines or your preferences.
- **DO NOT** send PRs for style changes. For example, do not send PRs that are focused on changing `.stylelintrc` rules.
- **DO NOT** send PRs for upgrading code to use newer language features, though it's ok to use newer language features as part of new code that's written.
- **DO NOT** send PRs for linting existing code.
## Pull Requests
- **DO** submit all code changes via pull requests (PRs) rather than through a direct commit. PRs will be reviewed and potentially merged by the repo maintainers after a peer review that includes at least one maintainer.
- **DO** give PRs short-but-descriptive names (e.g. "Fix layout drift (solve #123)", not just "Solve issue #123")
- **DO** refer to any relevant issues, and include [keywords](https://help.github.com/articles/closing-issues-via-commit-messages) that automatically close issues when the PR is merged.
- **DO** tag any users that should know about and/or review the change.
- **DO** ensure each commit successfully builds and passes Stylelint. The entire PR must pass all tests in the Continuous Integration (CI) system before it'll be merged.
- **DO** address PR feedback in an additional commit(s) rather than amending the existing commits, and only rebase/squash them when necessary. This makes it easier for reviewers to track changes.
- **BE CAREFUL OF** submitting "work in progress" PRs. Generally, a PR should only be submitted when it is considered ready for review and subsequent merging by the contributor.
- **DO NOT** send PRs only for changing build environments (begins with `chore:`), although the tool(s) might be outdated.
- **DO NOT** fix merge conflicts using a merge commit. Prefer `git rebase`.
- **DO NOT** mix independent, unrelated changes in one PR. Separate real product/test code changes from larger code formatting/dead code removal changes. Separate unrelated fixes into separate PRs, especially if they are in different partials.
- *The last one and also the most important*: **DO NOT** destroy the existing codebase.

View File

@ -1,7 +1,9 @@
module.exports = (grunt) ->
require('load-grunt-tasks')(grunt)
# Load Grunt Tasks
require('load-grunt-tasks') grunt
grunt.initConfig(
# Project Configuration
grunt.initConfig
# NPM Package Declare
pkg: grunt.file.readJSON('package.json')
# Sass Compile
@ -26,19 +28,23 @@ module.exports = (grunt) ->
annotation: 'dist/'
exp:
options:
processors: [require('autoprefixer')()]
processors: [
require('postcss-preset-env')()
require('autoprefixer')()
]
src: 'dist/bundle.css'
dest: 'dist/bundle.css'
min:
options:
processors: [
require('postcss-preset-env')()
require('autoprefixer')()
require('cssnano')(
preset: 'default'
)
require('cssnano')(preset: 'default')
]
src: 'dist/bundle.min.css'
dest: 'dist/bundle.min.css'
)
grunt.registerTask('build', ['sass', 'postcss'])
# Register Grunt Tasks
grunt.registerTask 'build', [
'sass'
'postcss'
]

55
README.md Normal file
View File

@ -0,0 +1,55 @@
<h1 align="center">x-markdown-css</h1>
<p align="center">
[![Version](https://img.shields.io/npm/v/x-markdown-css.svg)](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)
[![MIT License](https://img.shields.io/github/license/kuohuanhuan/x-markdown-css)](https://github.com/kuohuanhuan/x-markdown-css/blob/master/LICENSE)
</p>
> A simple and customizable Markdown CSS for everyone.
## Requirement
- Node.js >=16
## Install
```sh
npm install
```
## Build
```sh
npm run build
```
## Usage
You can use the minified CSS file with a CDN service:
- 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`
- 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.*
## Uses
- [SCSS](https://sass-lang.com): CSS pre-processor.
- [Grunt](https://gruntjs.com): Automating build tasks.
- [PostCSS](https://postcss.org): Transforming CSS dist.
- [Stylelint](https://stylelint.io): Linting SCSS codes.
*...and much more.*
## Contributing
PRs, issues and feature requests are welcome!
Feel free to check [Issues](https://github.com/kuohuanhuan/x-markdown-css/issues) page. You can also take a look at the [Contributing Guide](https://github.com/kuohuanhuan/x-markdown-css/blob/master/CONTRIBUTING.md).
## License
Copyright (c) 2023 [kuohuanhuan](https://github.com/kuohuanhuan), licensed under [MIT](https://github.com/kuohuanhuan/x-markdown-css/blob/master/LICENSE).

2740
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "x-markdown-css",
"version": "0.0.0-20230228.6",
"version": "0.0.0-20230302.2",
"description": "A simple and customizable Markdown CSS for everyone.",
"keywords": [
"markdown",
@ -28,22 +28,31 @@
},
"homepage": "https://github.com/kuohuanhuan/x-markdown-css#readme",
"engines": {
"node": ">=14"
"node": ">=16"
},
"scripts": {
"build": "grunt build"
"build": "grunt build",
"bump": "bumpp",
"lint": "stylelint **/*.scss --config .stylelintrc",
"lint:fix": "stylelint **/*.scss --config .stylelintrc --fix"
},
"dependencies": {
"coffeescript": "^2.7.0",
"sass": "^1.58.3"
},
"devDependencies": {
"@lodder/grunt-postcss": "^3.1.1",
"autoprefixer": "^10.4.13",
"coffeescript": "^2.7.0",
"bumpp": "^9.0.0",
"cssnano": "^5.1.15",
"grunt": "^1.6.1",
"grunt-sass": "^3.1.0",
"load-grunt-tasks": "^5.1.0",
"postcss": "^8.4.21"
"postcss": "^8.4.21",
"postcss-preset-env": "^8.0.1",
"stylelint": "^15.2.0",
"stylelint-config-standard-scss": "^7.0.1",
"stylelint-order": "^6.0.2",
"stylelint-scss": "^4.4.0"
}
}

View File

@ -0,0 +1 @@
@import 'title', 'text', 'link', 'code', 'quote', 'figure', 'list', 'table', 'media';

View File

@ -0,0 +1,35 @@
code {
font-size: .85rem;
font-weight: 600;
font-family: var(--xm-font-code);
color: var(--xm-c-dark);
&::before,
&::after {
content: '`';
}
}
pre {
overflow-x: auto;
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;
border-radius: .375rem;
code {
padding: 0;
font-size: inherit;
font-family: inherit;
font-weight: 400;
color: inherit;
background: transparent;
border-width: 0;
border-radius: 0;
line-height: inherit;
&::before,
&::after {
content: none;
}
}
}

View File

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

View File

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

View File

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

View File

@ -0,0 +1,46 @@
li {
margin-top: .5rem;
margin-bottom: .5rem;
}
ol {
margin-top: 1.25rem;
margin-bottom: 1.25rem;
list-style-type: none;
> li {
position: relative;
padding-left: 1.75rem;
&::before {
content: counter(list-item, decimal) '.';
position: absolute;
left: 0;
font-weight: 400;
color: var(--xm-c-ol-counter);
}
}
}
ul {
margin-top: 1.25rem;
margin-bottom: 1.25rem;
list-style-type: none;
> li {
position: relative;
padding-left: 1.75rem;
&::before {
content: '';
position: absolute;
top: .685rem;
left: .25rem;
width: .375rem;
height: .375rem;
background-color: var(--xm-c-ul-counter);
border-radius: 50%;
}
}
}
ul ul,
ul ol,
ol ul,
ol ol {
margin-top: .75rem;
margin-bottom: .75rem;
}

View File

@ -0,0 +1,5 @@
img,
video {
margin-top: 2rem;
margin-bottom: 2rem;
}

View File

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

View File

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

View File

@ -0,0 +1,14 @@
p {
margin-top: 1.25rem;
margin-bottom: 1.25rem;
}
strong {
font-weight: 600;
color: var(--xm-c-dark);
}
b {
color: var(--xm-c-dark);
}
em {
color: inherit;
}

View File

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

View File

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

View File

@ -1,2 +1,2 @@
$font-sans: 'Open Sans', 'Inter', 'Roboto', 'Helvetica', 'Arial', 'Noto Sans TC', 'Noto Sans SC', 'Sarasa Gothic TC', 'Sarasa Gothic SC', 'Microsoft JhengHei', 'Microsoft YaHei', -apple-system, sans-serif;
$font-mono: 'DM Mono', 'Fira Code', 'Jetbrains Mono', 'Input Mono', 'Menlo', 'MesloLGS NF', 'Ubuntu', monospace;
$font-regular: '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-code: 'DM Mono', 'Fira Code', 'Jetbrains Mono', 'Input Mono', 'Menlo', 'MesloLGS NF', 'Ubuntu', monospace;

View File

@ -1,6 +1,6 @@
.markdown-body {
font-family: var(--xm-font-regular) !important;
color: var(--xm-c-general);
font-family: var(--xm-font-sans) !important;
pre {
&:not(.shiki, .highlight) {
margin: 0;
@ -12,7 +12,7 @@
.highlight {
margin: .5rem 0;
font-size: 1.05rem;
font-family: var(--xm-font-mono) !important;
font-family: var(--xm-font-code) !important;
line-height: 1.4;
&.shiki-light {
background: var(--xm-c-shiki-light) !important;
@ -54,11 +54,9 @@
margin-bottom: 0;
}
}
p {
&:first-of-type::before {
content: none;
}
&:first-of-type::after {
p:first-of-type {
&::before,
&::after {
content: none;
}
}
@ -67,17 +65,9 @@
margin-top: 1rem;
}
}
.dark {
.shiki-light {
display: none;
}
}
html {
&:not(.dark) {
.shiki-dark {
display: none;
}
}
html:not(.dark) .shiki-dark,
.dark .shiki-light {
display: none;
}
.item {
text-decoration: none;
@ -96,79 +86,18 @@ html {
text-decoration: none;
border: 0 !important;
opacity: 0;
&:hover {
text-decoration: none;
}
&:hover,
&:focus {
text-decoration: none;
}
}
h1 {
&:hover {
.header-anchor {
opacity: .5;
}
}
&:focus {
.header-anchor {
opacity: .5;
}
}
}
h2 {
&:hover {
.header-anchor {
opacity: .5;
}
}
&:focus {
.header-anchor {
opacity: .5;
}
}
}
h3 {
&:hover {
.header-anchor {
opacity: .5;
}
}
&:focus {
.header-anchor {
opacity: .5;
}
}
}
h4 {
&:hover {
.header-anchor {
opacity: .5;
}
}
&:focus {
.header-anchor {
opacity: .5;
}
}
}
h5 {
&:hover {
.header-anchor {
opacity: .5;
}
}
&:focus {
.header-anchor {
opacity: .5;
}
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
&:hover {
.header-anchor {
opacity: .5;
}
}
&:hover,
&:focus {
.header-anchor {
opacity: .5;

View File

@ -1,267 +1,6 @@
.markdown-body,
@use '_partial/container' as *;
.prose {
max-width: 65ch;
font-size: 1rem;
color: var(--xm-c-general);
line-height: 1.75;
code {
font-size: .875rem;
font-weight: 600;
color: var(--xm-c-dark);
&::before, &::after {
content: '`';
}
}
a {
font-weight: 500;
text-decoration: none;
color: var(--xm-c-darker);
code {
color: var(--xm-c-code);
}
}
strong {
font-weight: 600;
color: var(--xm-c-dark);
}
li {
margin-top: .5rem;
margin-bottom: .5rem;
}
ol {
margin-top: 1.25rem;
margin-bottom: 1.25rem;
list-style-type: none;
> li {
position: relative;
padding-left: 1.75rem;
&::before {
content: counter(list-item, decimal) '.';
position: absolute;
left: 0;
font-weight: 400;
color: var(--xm-c-ol-counter);
}
}
}
ul {
margin-top: 1.25rem;
margin-bottom: 1.25rem;
list-style-type: none;
> li {
position: relative;
padding-left: 1.75rem;
&::before {
content: '';
position: absolute;
top: calc(.875rem - .1875rem);
left: .25rem;
width: .375rem;
height: .375rem;
background-color: var(--xm-c-ul-counter);
border-radius: 50%;
}
}
}
hr {
margin-top: 3rem;
border-color: var(--xm-c-hr-border);
margin-bottom: 3rem;
+ * {
margin-top: 0;
}
}
p {
margin-top: 1.25rem;
margin-bottom: 1.25rem;
}
blockquote,
q {
margin-top: 1.6rem;
padding-left: 1rem;
font-weight: 500;
font-style: italic;
color: inherit;
border-color: var(--xm-c-blockquote-color);
border-left-width: .25rem;
quotes: '\201C''\201D''\2018''\2019';
margin-bottom: 1.6rem;
p {
&:first-of-type::before {
content: open-quote;
}
&:last-of-type::after {
content: close-quote;
}
}
}
h1 {
margin-top: 0;
margin-bottom: .8889rem;
font-size: 2.25rem;
font-weight: 800;
color: var(--xm-c-darker);
line-height: 1.1111;
}
h2 {
margin-top: 2rem;
font-size: 1.5rem;
font-weight: 700;
color: var(--xm-c-dark);
margin-bottom: 1rem;
line-height: 1.3334;
code {
font-size: .875rem;
}
+ * {
margin-top: 0;
}
}
h3 {
margin-top: 1.6rem;
font-size: 1.25rem;
font-weight: 600;
color: inherit;
margin-bottom: .6rem;
line-height: 1.6;
opacity: .7;
code {
font-size: .9rem;
}
+ * {
margin-top: 0;
}
}
h4 {
margin-top: 1.5rem;
font-weight: 600;
color: inherit;
margin-bottom: .5rem;
line-height: 1.5;
+ * {
margin-top: 0;
}
}
figure {
margin-top: 2rem;
margin-bottom: 2rem;
figcaption {
margin-top: .8571rem;
font-size: .875rem;
color: var(--xm-c-figcaption);
line-height: 1.4286;
}
> * {
margin-top: 0;
margin-bottom: 0;
}
}
pre {
overflow-x: auto;
margin-top: 1.7143rem;
padding-top: .8571rem, 1.1429rem;
font-size: .875rem;
color: var(--xm-c-pre);
line-height: 1.7143;
margin-bottom: 1.7143rem;
border-radius: .375rem;
code {
padding: 0;
font-size: inherit;
font-family: inherit;
font-weight: 400;
color: inherit;
background: transparent;
border-width: 0;
border-radius: 0;
line-height: inherit;
&::before {
content: none;
}
&::after {
content: none;
}
}
}
table {
margin-top: 2rem;
margin-bottom: 2rem;
width: 100%;
table-layout: auto;
font-size: .875rem;
text-align: left;
line-height: 1.7143;
}
thead {
font-weight: 600;
color: var(--xm-c-thead);
border-bottom-width: 1px;
border-bottom-color: var(--xm-c-thead-border);
th {
vertical-align: bottom;
padding-right: .5714rem;
padding-bottom: .5714rem;
padding-left: .5714rem;
&:first-child {
padding-left: 0;
}
&:last-child {
padding-right: 0;
}
}
}
tbody {
tr {
border-bottom-width: 1px;
border-bottom-color: var(--xm-c-tr-border);
&:last-child {
border-bottom-width: 0;
}
}
td {
vertical-align: top;
padding: .5714rem;
&:first-child {
padding-left: 0;
}
&:last-child {
padding-right: 0;
}
}
}
img {
margin-top: 2rem;
margin-bottom: 2rem;
}
video {
margin-top: 2rem;
margin-bottom: 2rem;
}
h6 {
text-transform: uppercase;
margin-top: 20px;
margin-bottom: 10px;
font-weight: 500;
opacity: .5;
letter-spacing: 2px;
}
> :first-child {
margin-top: 0;
}
> :last-child {
margin-bottom: 0;
}
b {
color: var(--xm-c-dark);
}
em {
color: inherit;
}
ul ul,
ul ol,
ol ul,
ol ol {
margin-top: .75rem;
margin-bottom: .75rem;
}
@include container;
@import '_partial/all';
}