Модуль typography
base
body {
font-size : var(--body-size-base, 16px);
font-family : var(--body-font-family, "Open Sans", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");
line-height : var(--body-line-height, 1.6);
color : var(--body-color, #333);
text-align : var(--body-text-align, null);
background-color: var(--body-bg, #fff);
}
// чтобы сравнять размер шрифта body и html для нормальной работы rem
html {
font-size: var(--html-size-base, var(--body-size-base, 16px));
}
h1, h2, h3, h4, h5, h6 {
font-weight: var(--headings-font-weight, normal);
line-height: var(--headings-line-height, 1.2);
}
h1, .h1 {
font-size: var(--h1-font-size, 2.5rem);
margin: var(--h1-margin, .7em 0 .5em 0);
}
h2, .h2 {
font-size: var(--h2-font-size, 2rem);
margin: var(--h2-margin, 1.1em 0 .5em 0);
}
h3, .h3 {
font-size: var(--h3-font-size, 1.75rem);
margin: var(--h3-margin, 1.1em 0 .5em 0);
}
h4, .h4 {
font-size: var(--h4-font-size, 1.5rem);
margin: var(--h4-margin, 1.1em 0 .5em 0);
}
h5, .h5 {
font-size: var(--h5-font-size, 1.25rem);
margin: var(--h5-margin, 1.1em 0 .5em 0);
}
h6, .h6 {
font-size: var(--h6-font-size, 1rem);
margin: var(--h6-margin, 1.1em 0 .5em 0);
}
p {
margin: var(--paragraph-margin, 0 0 1rem 0);
}
blocks
:root {
--blockquote-margin: 20px 0;
--blockquote-padding: 10px 0 10px 25px;
--blockquote-border-left: 5px solid var(--primary400);
--blockquote-color: var(--primary500);
--blockquote-border-radius: 8px;
--blockquote-background: null;
--blockquote-link-color: var(--secondary500);
--blockquote-link-decoration: underline;
--blockquote-link-hover-color: var(--secondary700);
--blockquote-link-hover-decoration: none;
--pre-bg-color: var(--primary50);
--pre-text-color: var(--gray800);
--pre-padding: 10px 15px 10px 25px;
--pre-margin: 20px 0;
--pre-border-top: var(--primary150);
--pre-border-right: var(--primary150);
--pre-border-bottom: var(--primary150);
--pre-border-left: var(--primary150);
--pre-line-height: 1.5;
--pre-border-radius: 3px;
--pre-font-size: .9rem;
--code-background: var(--primary50);
--code-padding: 0 5px;
--code-border-radius: 3px;
--code-font-size: .9em;
--code-color: inherit;
}
blockquote {
margin : var(--blockquote-margin);
padding : var(--blockquote-padding);
border-left : var(--blockquote-border-left);
color : var(--blockquote-color);
border-radius: var(--blockquote-border-radius);
background : var(--blockquote-background);
}
pre {
padding : var(--pre-padding);
margin : var(--pre-margin);
background : var(--pre-bg-color);
color : var(--pre-text-color);
border-top : var(--pre-border-top);
border-right : var(--pre-border-right);
border-bottom: var(--pre-border-bottom);
border-left : var(--pre-border-left);
line-height : var(--pre-line-height);
border-radius: var(--pre-border-radius);
font-size : var(--pre-font-size);
font-family : var(--font-family-monospace);
white-space : pre-wrap;
-moz-tab-size: 4;
tab-size : 4;
}
code {
font-family : var(--font-family-monospace);
background : var(--code-background);
padding : var(--code-padding);
border-radius: var(--code-border-radius);
font-size : var(--code-font-size);
color : var(--code-color);
white-space : nowrap;
display : inline-block;
}
var {
font-family : var(--font-family-monospace);
font-style : normal;
padding : 5px;
background-color: var(--var-background-color, #f4efdf);
color : var(--var-text-color, #333);
font-size : var(--var-font-size, .9rem);
border-radius : var(--var-border-radius, 3px);
}
kbd {
font-family : var(--font-family-monospace);
font-style : normal;
padding : 5px;
background-color: var(--kbd-background-color, #f4efdf);
color : var(--kbd-text-color, #f4efdf);
font-size : var(--kbd-font-size, .9rem);
border-radius : var(--kbd-border-radius, 3px);
}
samp {
font-family : var(--font-family-monospace);
font-style : normal;
padding : 5px;
background-color: var(--samp-background-color, #d0ecb9);
color : var(--samp-text-color, #333);
font-size : var(--samp-font-size, .9rem);
border-radius : var(--samp-border-radius, 3px);
}
mark {
padding : var(--mark-padding, 0 4px);
background-color: var(--mark-background-color, #F7F2C6);
border-radius : var(--mark-border-radius, 3px);
font-size : var(--mark-font-size, .95em);
}
details
details summary::before {
content : var(--summary-marker, "❯");
color : var(--summary-marker-color);
margin-right: var(--summary-marker-margin-r, .6em);
transition : transform var(--summary-marker-time, 0.2s);
display : inline-block;
}
details[open] summary:before {
transform: rotate(var(--summary-marker-rotate, 90deg));
}
images
img.circle {
border-radius: 50%;
}
img.thumbnail {
border : var(--thumbnail-border, #DDDDDD 1px solid);
padding: var(--thumbnail-padding, 4px);
}
img.left {
float : left;
margin: var(--img-left-margin, 5px 20px 5px 0);
}
img.right {
float : right;
margin: var(--img-right-margin, 5px 0 5px 20px);
}
img.center {
margin : 0 auto;
display: block;
}
lines
hr {
display : block;
padding : 0;
border : none;
border-top: var(--hr-border, 1px solid #AAAAAA);
margin : var(--hr-margin, 20px 0);
}
hr.dashed {
border-top-style: dashed;
}
hr.dotted {
border-top-style: dotted;
}
hr.double {
border-top-style: double;
}
links
a {
color : var(--link-color, var(--primary500));
text-decoration: var(--link-decoration, none);
}
a:hover {
color : var(--link-hover-color, var(--secondary700));
text-decoration: var(--link-hover-decoration, underline);
}
print
@media print {
body {
color : #000;
background: white;
}
ul,
img {
page-break-inside: avoid;
}
.hide-print {
display: none !important;
}
.flex {
display: block !important;
}
.flex>div {
width : 100% !important;
padding: 0 !important;
}
}
root
:root {
--font-family-monospace: Consolas, "PT Mono", "Roboto Mono", "Liberation Mono", "Segoe UI Mono", "Courier New", monospace,
}
table
table {
width: 100%;
border-collapse: collapse;
tr {
border-bottom: var(--table-tr-border-bottom, #d7dfe1 1px solid);
}
thead tr {
background : var(--table-th-background, #eff2f3);
border-bottom: var(--table-th-border-bottom, #ced8da 1px solid);
border-top : var(--table-th-border-top, #c8d3d6 1px solid);
}
th {
text-align: left;
padding : var(--table-th-padding, .6rem .5rem);
}
td {
vertical-align: top;
padding : var(--table-td-padding, .5rem);
}
&.table-striped tbody {
tr:nth-of-type(odd) {
background: var(--table-striped-odd-bg, #ffffff);
}
tr:nth-of-type(even) {
background: var(--table-striped-even-bg, #f1f5f5);
}
}
&.table-border-none tr {
border: none;
}
&.table-border {
td:not(:last-child) {
border-right: var(--table-td-border-right, #d7dfe1 1px solid);
}
th:not(:last-child) {
border-right: var(--table-th-border-right, #ced8da 1px solid);
}
}
&.table-hover tbody {
tr:hover {
background: var(--table-tr-hover-bg, #d6e2e2);
}
}
}