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

Compare commits

...

22 Commits

Author SHA1 Message Date
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
18 changed files with 1315 additions and 278 deletions

View File

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

3
.stylelintignore Normal file
View File

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

View File

@ -1,4 +1,5 @@
{
"ignoreDisables": true,
"extends": "stylelint-config-standard-scss",
"plugins": [
"stylelint-scss",

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'
]

1032
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.13",
"version": "0.0.0-20230301.4",
"description": "A simple and customizable Markdown CSS for everyone.",
"keywords": [
"markdown",
@ -49,6 +49,7 @@
"grunt-sass": "^3.1.0",
"load-grunt-tasks": "^5.1.0",
"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",

View File

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

View File

@ -0,0 +1,36 @@
code {
font-size: .85rem;
font-weight: 600;
font-family: var(--xm-font-mono);
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 {
content: none;
}
&::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,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';
}