@vrembem/content 4.0.0-next.44
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +17 -0
- package/dev/index.css +174 -0
- package/dev/index.css.map +1 -0
- package/dist/index.css +1 -0
- package/dist/index.css.map +1 -0
- package/index.scss +17 -0
- package/package.json +51 -0
- package/src/_config.scss +59 -0
- package/src/_functions.scss +133 -0
- package/src/modules/_arrow.scss +24 -0
- package/src/modules/_blockquote.scss +19 -0
- package/src/modules/_code.scss +17 -0
- package/src/modules/_content.scss +18 -0
- package/src/modules/_headings.scss +32 -0
- package/src/modules/_link.scss +41 -0
- package/src/modules/_list.scss +24 -0
- package/src/modules/_loading-spinner.scss +8 -0
- package/src/modules/_pre.scss +24 -0
- package/src/modules/_separator.scss +13 -0
- package/src/modules/_sr-only.scss +8 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Sebastian Nitu
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
|
13
|
+
all copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
21
|
+
THE SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# Content
|
|
2
|
+
|
|
3
|
+
A content wrapper that provides typographic styles for common HTML elements.
|
|
4
|
+
|
|
5
|
+
[Documentation](https://vrembem.com/packages/content)
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
```sh
|
|
10
|
+
npm install @vrembem/content
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
### Styles
|
|
14
|
+
|
|
15
|
+
```scss
|
|
16
|
+
@use "@vrembem/content";
|
|
17
|
+
```
|
package/dev/index.css
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
@layer base {
|
|
2
|
+
.content {
|
|
3
|
+
font-family: var(--vb-content-font-family, inherit);
|
|
4
|
+
font-size: var(--vb-content-font-size, inherit);
|
|
5
|
+
line-height: var(--vb-content-line-height, inherit);
|
|
6
|
+
color: var(--vb-content-foreground, var(--vb-foreground));
|
|
7
|
+
}
|
|
8
|
+
.content > * + * {
|
|
9
|
+
margin-top: var(--vb-content-spacing);
|
|
10
|
+
}
|
|
11
|
+
.h1, .content > h1, .h2, .content > h2, .h3, .content > h3, .h4, .content > h4, .h5, .content > h5, .h6, .content > h6 {
|
|
12
|
+
font-family: var(--vb-headings-font-family, inherit);
|
|
13
|
+
font-size: var(--vb-headings-font-size, 1em);
|
|
14
|
+
font-weight: var(--vb-headings-font-weight, var(--vb-font-weight-semi-bold));
|
|
15
|
+
line-height: var(--vb-headings-line-height, inherit);
|
|
16
|
+
color: var(--vb-headings-foreground, var(--vb-foreground-strong));
|
|
17
|
+
}
|
|
18
|
+
.h1, .content > h1 {
|
|
19
|
+
--vb-headings-font-size: 2.75em;
|
|
20
|
+
}
|
|
21
|
+
.h2, .content > h2 {
|
|
22
|
+
--vb-headings-font-size: 2em;
|
|
23
|
+
}
|
|
24
|
+
.h3, .content > h3 {
|
|
25
|
+
--vb-headings-font-size: 1.75em;
|
|
26
|
+
}
|
|
27
|
+
.h4, .content > h4 {
|
|
28
|
+
--vb-headings-font-size: 1.5em;
|
|
29
|
+
}
|
|
30
|
+
.h5, .content > h5 {
|
|
31
|
+
--vb-headings-font-size: 1.25em;
|
|
32
|
+
}
|
|
33
|
+
.h6, .content > h6 {
|
|
34
|
+
--vb-headings-font-size: 1em;
|
|
35
|
+
}
|
|
36
|
+
.link, .content :not(div) > a {
|
|
37
|
+
color: var(--vb-link-foreground, var(--vb-foreground-accent));
|
|
38
|
+
text-decoration: var(--vb-link-decoration, underline);
|
|
39
|
+
text-decoration-thickness: var(--vb-link-decoration-thickness, 1px);
|
|
40
|
+
text-underline-offset: var(--vb-link-underline-offset, 2px);
|
|
41
|
+
}
|
|
42
|
+
.link code, .content :not(div) > a code {
|
|
43
|
+
color: var(--vb-link-foreground, var(--vb-foreground-accent));
|
|
44
|
+
background-color: var(--vb-background-alt);
|
|
45
|
+
}
|
|
46
|
+
.link:hover, .link:focus, .content :not(div) > a:hover, .content :not(div) > a:focus {
|
|
47
|
+
color: var(--vb-link-foreground-hover, light-dark(oklch(from var(--vb-foreground-accent) calc(l - 0.1) c h), oklch(from var(--vb-foreground-accent) calc(l + 0.1) c h)));
|
|
48
|
+
text-decoration: var(--vb-link-decoration-hover, none);
|
|
49
|
+
}
|
|
50
|
+
.link:hover code, .link:focus code, .content :not(div) > a:hover code, .content :not(div) > a:focus code {
|
|
51
|
+
color: var(--vb-link-foreground-hover, light-dark(oklch(from var(--vb-foreground-accent) calc(l - 0.1) c h), oklch(from var(--vb-foreground-accent) calc(l + 0.1) c h)));
|
|
52
|
+
}
|
|
53
|
+
.link:focus, .content :not(div) > a:focus {
|
|
54
|
+
outline: var(--vb-link-focus-ring, currentcolor dotted 1px);
|
|
55
|
+
outline-offset: var(--vb-link-focus-ring-offset, 0.125rem);
|
|
56
|
+
}
|
|
57
|
+
.list, .content > ul, .content > ol {
|
|
58
|
+
margin-left: var(--vb-list-indent, var(--vb-spacing-lg));
|
|
59
|
+
}
|
|
60
|
+
.list ul,
|
|
61
|
+
.list ol, .content > ul ul,
|
|
62
|
+
.content > ul ol, .content > ol ul,
|
|
63
|
+
.content > ol ol {
|
|
64
|
+
margin-left: var(--vb-list-indent, var(--vb-spacing-lg));
|
|
65
|
+
}
|
|
66
|
+
.list li li,
|
|
67
|
+
.list li + li, .content > ul li li,
|
|
68
|
+
.content > ul li + li, .content > ol li li,
|
|
69
|
+
.content > ol li + li {
|
|
70
|
+
margin-top: var(--vb-list-spacing, var(--vb-spacing-sm));
|
|
71
|
+
}
|
|
72
|
+
.list-style-none {
|
|
73
|
+
list-style: none !important;
|
|
74
|
+
}
|
|
75
|
+
.code, .content :not(pre) > code {
|
|
76
|
+
padding: var(--vb-code-padding, 0.125rem 0.375rem);
|
|
77
|
+
border: var(--vb-code-border);
|
|
78
|
+
border-radius: var(--vb-code-border-radius, var(--vb-border-radius));
|
|
79
|
+
font-family: var(--vb-font-family-mono);
|
|
80
|
+
font-size: var(--vb-code-font-size, var(--vb-font-size-sm));
|
|
81
|
+
color: var(--vb-code-foreground, var(--vb-foreground-accent-alt));
|
|
82
|
+
overflow-wrap: break-word;
|
|
83
|
+
background: var(--vb-code-background, var(--vb-background-alt));
|
|
84
|
+
}
|
|
85
|
+
.pre, .content > pre {
|
|
86
|
+
overflow: auto;
|
|
87
|
+
padding: var(--vb-pre-padding, var(--vb-spacing-md));
|
|
88
|
+
border: var(--vb-pre-border, none);
|
|
89
|
+
border-radius: var(--vb-pre-border-radius, var(--vb-border-radius));
|
|
90
|
+
font-family: var(--vb-font-family-mono);
|
|
91
|
+
color: var(--vb-pre-foreground, var(--vb-foreground-strong));
|
|
92
|
+
background: var(--vb-pre-background, var(--vb-background-alt));
|
|
93
|
+
}
|
|
94
|
+
.pre code, .content > pre code {
|
|
95
|
+
padding: 0;
|
|
96
|
+
border: none;
|
|
97
|
+
font-size: var(--vb-pre-font-size, var(--vb-font-size-sm));
|
|
98
|
+
color: inherit;
|
|
99
|
+
background: none;
|
|
100
|
+
}
|
|
101
|
+
.blockquote, .content > blockquote {
|
|
102
|
+
position: relative;
|
|
103
|
+
padding: var(--vb-blockquote-padding, var(--vb-spacing-md));
|
|
104
|
+
border: var(--vb-blockquote-border, var(--vb-border));
|
|
105
|
+
border-radius: var(--vb-blockquote-border-radius, var(--vb-border-radius));
|
|
106
|
+
color: var(--vb-blockquote-foreground, currentcolor);
|
|
107
|
+
background: var(--vb-blockquote-background, transparent);
|
|
108
|
+
}
|
|
109
|
+
.blockquote > * + *, .content > blockquote > * + * {
|
|
110
|
+
margin-top: var(--vb-blockquote-spacing, var(--vb-spacing-md));
|
|
111
|
+
}
|
|
112
|
+
.sep, .content > hr {
|
|
113
|
+
display: block;
|
|
114
|
+
height: 0;
|
|
115
|
+
border: none;
|
|
116
|
+
border-top: var(--vb-separator-border-width, var(--vb-border-width)) var(--vb-separator-border-style, var(--vb-border-style)) var(--vb-separator-border-color, var(--vb-border-color));
|
|
117
|
+
}
|
|
118
|
+
.arrow,
|
|
119
|
+
.arrow-up,
|
|
120
|
+
.arrow-down,
|
|
121
|
+
.arrow-left,
|
|
122
|
+
.arrow-right {
|
|
123
|
+
pointer-events: none;
|
|
124
|
+
transform-origin: center;
|
|
125
|
+
display: inline-block;
|
|
126
|
+
flex-grow: 0;
|
|
127
|
+
flex-shrink: 0;
|
|
128
|
+
width: 0;
|
|
129
|
+
height: 0;
|
|
130
|
+
border-color: var(--vb-arrow-color, currentcolor) transparent transparent;
|
|
131
|
+
border-style: solid;
|
|
132
|
+
border-width: var(--vb-arrow-size, 6px 4px);
|
|
133
|
+
border-bottom-width: 0;
|
|
134
|
+
border-radius: var(--vb-arrow-radius, 2px);
|
|
135
|
+
}
|
|
136
|
+
.arrow-up {
|
|
137
|
+
transform: rotate(180deg);
|
|
138
|
+
}
|
|
139
|
+
.arrow-left {
|
|
140
|
+
transform: rotate(90deg);
|
|
141
|
+
}
|
|
142
|
+
.arrow-right {
|
|
143
|
+
transform: rotate(-90deg);
|
|
144
|
+
}
|
|
145
|
+
.loading-spinner {
|
|
146
|
+
width: var(--vb-loading-size, 1em);
|
|
147
|
+
height: var(--vb-loading-size, 1em);
|
|
148
|
+
position: relative;
|
|
149
|
+
display: inline-block;
|
|
150
|
+
border: var(--vb-loading-border, 2px solid);
|
|
151
|
+
border-color: var(--vb-loading-color, currentcolor) var(--vb-loading-color, currentcolor) transparent transparent;
|
|
152
|
+
border-radius: var(--vb-border-radius-circle);
|
|
153
|
+
animation: spin var(--vb-loading-duration, 0.6s) infinite linear;
|
|
154
|
+
}
|
|
155
|
+
@keyframes spin {
|
|
156
|
+
from {
|
|
157
|
+
transform: rotate(0deg);
|
|
158
|
+
}
|
|
159
|
+
to {
|
|
160
|
+
transform: rotate(360deg);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
.sr-only {
|
|
164
|
+
position: absolute;
|
|
165
|
+
overflow: hidden;
|
|
166
|
+
width: 1px;
|
|
167
|
+
height: 1px;
|
|
168
|
+
margin: -1px;
|
|
169
|
+
padding: 0;
|
|
170
|
+
clip-path: inset(50%);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/*# sourceMappingURL=index.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../index.scss","../src/modules/_content.scss","../src/modules/_headings.scss","../../../node_modules/@vrembem/core/src/scss/modules/_tokens.scss","../src/modules/_link.scss","../src/modules/_list.scss","../src/modules/_code.scss","../src/modules/_pre.scss","../src/modules/_blockquote.scss","../src/modules/_separator.scss","../src/modules/_arrow.scss","../../../node_modules/@vrembem/core/src/scss/library/_arrow.scss","../src/modules/_loading-spinner.scss","../../../node_modules/@vrembem/core/src/scss/library/_size.scss","../../../node_modules/@vrembem/core/src/scss/library/_loading-spinner.scss","../src/modules/_sr-only.scss","../../../node_modules/@vrembem/core/src/scss/library/_sr-only.scss"],"names":[],"mappings":"AAIA;ECGE;IACE;IACA;IACA;IACA;;EAEA;IACE;;ECLJ;IACE;IACA;IACA;IACA;IACA;;EAYA;IC0JE;;ED1JF;IC0JE;;ED1JF;IC0JE;;ED1JF;IC0JE;;ED1JF;IC0JE;;ED1JF;IC0JE;;EC7KJ;IACE;IACA;IACA;IACA;;EAEA;IACE;IACA;;EAIF;IAEE;IAIA;;EAEA;IACE;;EAOJ;IACE;IACA;;EC/BJ;IACE;;EAEA;AAAA;AAAA;AAAA;IAEE;;EAGF;AAAA;AAAA;AAAA;IAEE;;EAIJ;IACE;;ECfF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;ECRF;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;EAEA;IACE;IACA;IACA;IACA;IACA;;ECdJ;IACE;IACA;IACA;IACA;IACA;IACA;;EAEA;IACE;;ECTJ;IACE;IACA;IACA;IACA;;ECNF;AAAA;AAAA;AAAA;AAAA;ICMA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EDTA;IACE;;EAGF;IACE;;EAGF;IACE;;EEjBF;ICUE,OCCY;IDAZ;ICOF,UFjBgC;IEkBhC;IACA;IACA;IACA;IACA;;EAME;IACE;MACE;;IAGF;MACE;;;ECnCN;ICFA;IACA;IACA;IACA;IACA;IACA;IACA","file":"index.css"}
|
package/dist/index.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@layer base{.content{font-family:var(--vb-content-font-family, inherit);font-size:var(--vb-content-font-size, inherit);line-height:var(--vb-content-line-height, inherit);color:var(--vb-content-foreground, var(--vb-foreground))}.content>*+*{margin-top:var(--vb-content-spacing)}.h1,.content>h1,.h2,.content>h2,.h3,.content>h3,.h4,.content>h4,.h5,.content>h5,.h6,.content>h6{font-family:var(--vb-headings-font-family, inherit);font-size:var(--vb-headings-font-size, 1em);font-weight:var(--vb-headings-font-weight, var(--vb-font-weight-semi-bold));line-height:var(--vb-headings-line-height, inherit);color:var(--vb-headings-foreground, var(--vb-foreground-strong))}.h1,.content>h1{--vb-headings-font-size:2.75em}.h2,.content>h2{--vb-headings-font-size:2em}.h3,.content>h3{--vb-headings-font-size:1.75em}.h4,.content>h4{--vb-headings-font-size:1.5em}.h5,.content>h5{--vb-headings-font-size:1.25em}.h6,.content>h6{--vb-headings-font-size:1em}.link,.content :not(div)>a{color:var(--vb-link-foreground, var(--vb-foreground-accent));text-decoration:var(--vb-link-decoration, underline);text-decoration-thickness:var(--vb-link-decoration-thickness, 1px);text-underline-offset:var(--vb-link-underline-offset, 2px)}.link code,.content :not(div)>a code{color:var(--vb-link-foreground, var(--vb-foreground-accent));background-color:var(--vb-background-alt)}.link:hover,.link:focus,.content :not(div)>a:hover,.content :not(div)>a:focus{color:var(--vb-link-foreground-hover, light-dark(oklch(from var(--vb-foreground-accent) calc(l - 0.1) c h), oklch(from var(--vb-foreground-accent) calc(l + 0.1) c h)));text-decoration:var(--vb-link-decoration-hover, none)}.link:hover code,.link:focus code,.content :not(div)>a:hover code,.content :not(div)>a:focus code{color:var(--vb-link-foreground-hover, light-dark(oklch(from var(--vb-foreground-accent) calc(l - 0.1) c h), oklch(from var(--vb-foreground-accent) calc(l + 0.1) c h)))}.link:focus,.content :not(div)>a:focus{outline:var(--vb-link-focus-ring, currentcolor dotted 1px);outline-offset:var(--vb-link-focus-ring-offset, 0.125rem)}.list,.content>ul,.content>ol{margin-left:var(--vb-list-indent, var(--vb-spacing-lg))}.list ul,.list ol,.content>ul ul,.content>ul ol,.content>ol ul,.content>ol ol{margin-left:var(--vb-list-indent, var(--vb-spacing-lg))}.list li li,.list li+li,.content>ul li li,.content>ul li+li,.content>ol li li,.content>ol li+li{margin-top:var(--vb-list-spacing, var(--vb-spacing-sm))}.list-style-none{list-style:none !important}.code,.content :not(pre)>code{padding:var(--vb-code-padding, 0.125rem 0.375rem);border:var(--vb-code-border);border-radius:var(--vb-code-border-radius, var(--vb-border-radius));font-family:var(--vb-font-family-mono);font-size:var(--vb-code-font-size, var(--vb-font-size-sm));color:var(--vb-code-foreground, var(--vb-foreground-accent-alt));overflow-wrap:break-word;background:var(--vb-code-background, var(--vb-background-alt))}.pre,.content>pre{overflow:auto;padding:var(--vb-pre-padding, var(--vb-spacing-md));border:var(--vb-pre-border, none);border-radius:var(--vb-pre-border-radius, var(--vb-border-radius));font-family:var(--vb-font-family-mono);color:var(--vb-pre-foreground, var(--vb-foreground-strong));background:var(--vb-pre-background, var(--vb-background-alt))}.pre code,.content>pre code{padding:0;border:none;font-size:var(--vb-pre-font-size, var(--vb-font-size-sm));color:inherit;background:none}.blockquote,.content>blockquote{position:relative;padding:var(--vb-blockquote-padding, var(--vb-spacing-md));border:var(--vb-blockquote-border, var(--vb-border));border-radius:var(--vb-blockquote-border-radius, var(--vb-border-radius));color:var(--vb-blockquote-foreground, currentcolor);background:var(--vb-blockquote-background, transparent)}.blockquote>*+*,.content>blockquote>*+*{margin-top:var(--vb-blockquote-spacing, var(--vb-spacing-md))}.sep,.content>hr{display:block;height:0;border:none;border-top:var(--vb-separator-border-width, var(--vb-border-width)) var(--vb-separator-border-style, var(--vb-border-style)) var(--vb-separator-border-color, var(--vb-border-color))}.arrow,.arrow-up,.arrow-down,.arrow-left,.arrow-right{pointer-events:none;transform-origin:center;display:inline-block;flex-grow:0;flex-shrink:0;width:0;height:0;border-color:var(--vb-arrow-color, currentcolor) rgba(0,0,0,0) rgba(0,0,0,0);border-style:solid;border-width:var(--vb-arrow-size, 6px 4px);border-bottom-width:0;border-radius:var(--vb-arrow-radius, 2px)}.arrow-up{transform:rotate(180deg)}.arrow-left{transform:rotate(90deg)}.arrow-right{transform:rotate(-90deg)}.loading-spinner{width:var(--vb-loading-size, 1em);height:var(--vb-loading-size, 1em);position:relative;display:inline-block;border:var(--vb-loading-border, 2px solid);border-color:var(--vb-loading-color, currentcolor) var(--vb-loading-color, currentcolor) rgba(0,0,0,0) rgba(0,0,0,0);border-radius:var(--vb-border-radius-circle);animation:spin var(--vb-loading-duration, 0.6s) infinite linear}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.sr-only{position:absolute;overflow:hidden;width:1px;height:1px;margin:-1px;padding:0;clip-path:inset(50%)}}/*# sourceMappingURL=index.css.map */
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../index.scss","../src/modules/_content.scss","../src/modules/_headings.scss","../../../node_modules/@vrembem/core/src/scss/modules/_tokens.scss","../src/modules/_link.scss","../src/modules/_list.scss","../src/modules/_code.scss","../src/modules/_pre.scss","../src/modules/_blockquote.scss","../src/modules/_separator.scss","../src/modules/_arrow.scss","../../../node_modules/@vrembem/core/src/scss/library/_arrow.scss","../src/modules/_loading-spinner.scss","../../../node_modules/@vrembem/core/src/scss/library/_size.scss","../../../node_modules/@vrembem/core/src/scss/library/_loading-spinner.scss","../src/modules/_sr-only.scss","../../../node_modules/@vrembem/core/src/scss/library/_sr-only.scss"],"names":[],"mappings":"AAIA,YCGE,SACE,mDACA,+CACA,mDACA,yDAEA,aACE,qCCLJ,gGACE,oDACA,4CACA,4EACA,oDACA,iEAYA,gBC0JE,+BD1JF,gBC0JE,4BD1JF,gBC0JE,+BD1JF,gBC0JE,8BD1JF,gBC0JE,+BD1JF,gBC0JE,4BC7KJ,2BACE,6DACA,qDACA,mEACA,2DAEA,qCACE,6DACA,0CAIF,8EAEE,wKAIA,sDAEA,kGACE,wKAOJ,uCACE,2DACA,0DC/BJ,8BACE,wDAEA,8EAEE,wDAGF,gGAEE,wDAIJ,iBACE,2BCfF,8BACE,kDACA,6BACA,oEACA,uCACA,2DACA,iEACA,yBACA,+DCRF,kBACE,cACA,oDACA,kCACA,mEACA,uCACA,4DACA,8DAEA,4BACE,UACA,YACA,0DACA,cACA,gBCdJ,gCACE,kBACA,2DACA,qDACA,0EACA,oDACA,wDAEA,wCACE,8DCTJ,iBACE,cACA,SACA,YACA,sLCNF,sDCMA,oBACA,wBACA,qBACA,YACA,cACA,QACA,SACA,6EACA,mBACA,2CACA,sBACA,0CDTA,UACE,yBAGF,YACE,wBAGF,aACE,yBEjBF,iBCUE,MCCY,+DAOd,SFjBgC,SEkBhC,qBACA,2CACA,qHACA,6CACA,gEAME,gBACE,KACE,uBAGF,GACE,0BCnCN,SCFA,kBACA,gBACA,UACA,WACA,YACA,UACA","file":"index.css"}
|
package/index.scss
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
@use "sass:meta";
|
|
2
|
+
@forward "./src/config";
|
|
3
|
+
@forward "./src/functions";
|
|
4
|
+
|
|
5
|
+
@layer base {
|
|
6
|
+
@include meta.load-css("./src/modules/content");
|
|
7
|
+
@include meta.load-css("./src/modules/headings");
|
|
8
|
+
@include meta.load-css("./src/modules/link");
|
|
9
|
+
@include meta.load-css("./src/modules/list");
|
|
10
|
+
@include meta.load-css("./src/modules/code");
|
|
11
|
+
@include meta.load-css("./src/modules/pre");
|
|
12
|
+
@include meta.load-css("./src/modules/blockquote");
|
|
13
|
+
@include meta.load-css("./src/modules/separator");
|
|
14
|
+
@include meta.load-css("./src/modules/arrow");
|
|
15
|
+
@include meta.load-css("./src/modules/loading-spinner");
|
|
16
|
+
@include meta.load-css("./src/modules/sr-only");
|
|
17
|
+
}
|
package/package.json
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@vrembem/content",
|
|
3
|
+
"description": "A content wrapper that provides typographic styles for common HTML elements.",
|
|
4
|
+
"version": "4.0.0-next.44",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"BEM",
|
|
8
|
+
"front-end",
|
|
9
|
+
"component",
|
|
10
|
+
"content"
|
|
11
|
+
],
|
|
12
|
+
"style": "./dist/index.css",
|
|
13
|
+
"exports": {
|
|
14
|
+
".": {
|
|
15
|
+
"sass": "./index.scss",
|
|
16
|
+
"style": "./dist/index.css"
|
|
17
|
+
},
|
|
18
|
+
"./dev/*": "./dev/*",
|
|
19
|
+
"./dist/*": "./dist/*",
|
|
20
|
+
"./*": "./src/*"
|
|
21
|
+
},
|
|
22
|
+
"files": [
|
|
23
|
+
"dev",
|
|
24
|
+
"dist",
|
|
25
|
+
"src",
|
|
26
|
+
"index.scss"
|
|
27
|
+
],
|
|
28
|
+
"scripts": {
|
|
29
|
+
"serve": "vite",
|
|
30
|
+
"build": "npm-run-all clean styles",
|
|
31
|
+
"clean": "del dev && del dist",
|
|
32
|
+
"styles": "npm-run-all styles:dev styles:dist",
|
|
33
|
+
"styles:dev": "sass index.scss dev/index.css --load-path=../../node_modules",
|
|
34
|
+
"styles:dist": "sass index.scss dist/index.css --load-path=../../node_modules --style=compressed",
|
|
35
|
+
"watch": "npm run watch:styles",
|
|
36
|
+
"watch:styles": "concurrently 'npm run styles:dev -- --watch' 'npm run styles:dist -- --watch'"
|
|
37
|
+
},
|
|
38
|
+
"repository": {
|
|
39
|
+
"type": "git",
|
|
40
|
+
"url": "git+https://github.com/sebnitu/vrembem.git",
|
|
41
|
+
"directory": "packages/base"
|
|
42
|
+
},
|
|
43
|
+
"homepage": "https://github.com/sebnitu/vrembem/tree/main/packages/base#readme",
|
|
44
|
+
"dependencies": {
|
|
45
|
+
"@vrembem/core": "^4.0.0-next.44"
|
|
46
|
+
},
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public"
|
|
49
|
+
},
|
|
50
|
+
"gitHead": "db5caf39b87d0e20d9ff9ed1821166d3d28c6635"
|
|
51
|
+
}
|
package/src/_config.scss
ADDED
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
@use "@vrembem/core";
|
|
2
|
+
@use "@vrembem/core/config";
|
|
3
|
+
|
|
4
|
+
$config: () !default;
|
|
5
|
+
|
|
6
|
+
// prettier-ignore
|
|
7
|
+
$default: (
|
|
8
|
+
// Controls whether module styles are output. This can be overridden on a per
|
|
9
|
+
// module basis using the `content-output-exceptions` config option.
|
|
10
|
+
// @type boolean
|
|
11
|
+
"content-output": true,
|
|
12
|
+
|
|
13
|
+
// Modules to exclude from the output rule set in `content-output`
|
|
14
|
+
// @type list
|
|
15
|
+
"content-output-exceptions": (),
|
|
16
|
+
|
|
17
|
+
// A map containing module names as keys and their preferred class selectors
|
|
18
|
+
// @type map
|
|
19
|
+
"content-classes": (
|
|
20
|
+
"separator": "sep"
|
|
21
|
+
),
|
|
22
|
+
|
|
23
|
+
// A prefix to apply to content class selectors. Provided value is automatically
|
|
24
|
+
// suffixed with a "-" character when applied.
|
|
25
|
+
// @type string
|
|
26
|
+
"content-prefix": "",
|
|
27
|
+
|
|
28
|
+
// Used to output the heading styles and their font-size/line-height CSS
|
|
29
|
+
// variables. Should contain a key of the heading level to output and the
|
|
30
|
+
// value of a font-size and optional line-height (space separated).
|
|
31
|
+
// @type map
|
|
32
|
+
"content-headings": (
|
|
33
|
+
"h1": 2.75em,
|
|
34
|
+
"h2": 2em,
|
|
35
|
+
"h3": 1.75em,
|
|
36
|
+
"h4": 1.5em,
|
|
37
|
+
"h5": 1.25em,
|
|
38
|
+
"h6": 1em
|
|
39
|
+
),
|
|
40
|
+
|
|
41
|
+
// Map modules to their preferred content selectors
|
|
42
|
+
// @type map
|
|
43
|
+
"content-selectors": (
|
|
44
|
+
"h1": "> h1",
|
|
45
|
+
"h2": "> h2",
|
|
46
|
+
"h3": "> h3",
|
|
47
|
+
"h4": "> h4",
|
|
48
|
+
"h5": "> h5",
|
|
49
|
+
"h6": "> h6",
|
|
50
|
+
"link": ":not(div) > a",
|
|
51
|
+
"list": "> ul, > ol",
|
|
52
|
+
"code": ":not(pre) > code",
|
|
53
|
+
"pre": "> pre",
|
|
54
|
+
"blockquote": "> blockquote",
|
|
55
|
+
"separator": "> hr"
|
|
56
|
+
)
|
|
57
|
+
);
|
|
58
|
+
|
|
59
|
+
@include config.apply($config, $default);
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
@use "sass:list";
|
|
2
|
+
@use "sass:string";
|
|
3
|
+
@use "sass:map";
|
|
4
|
+
@use "sass:meta";
|
|
5
|
+
@use "@vrembem/core/config";
|
|
6
|
+
|
|
7
|
+
/// Conditional logic for when to output a content module.
|
|
8
|
+
///
|
|
9
|
+
/// @param {string} $module
|
|
10
|
+
/// The module name to conditionally toggle output.
|
|
11
|
+
///
|
|
12
|
+
/// @return {boolean}
|
|
13
|
+
/// The resolved condition boolean.
|
|
14
|
+
///
|
|
15
|
+
@function maybe-output($module) {
|
|
16
|
+
@if list.index(config.get("content-output-exceptions"), $module) {
|
|
17
|
+
@return not config.get("content-output");
|
|
18
|
+
} @else {
|
|
19
|
+
@return config.get("content-output");
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/// Creates a content selector for a content module if configured in `$content-include`.
|
|
24
|
+
///
|
|
25
|
+
/// @param {string} $module
|
|
26
|
+
/// The content module to check if content selector should be included.
|
|
27
|
+
///
|
|
28
|
+
/// @return {selector}
|
|
29
|
+
/// A partial CSS selector starting with ", " meant to be appended to an
|
|
30
|
+
/// existing selector. Will return an empty string if not configured.
|
|
31
|
+
///
|
|
32
|
+
/// @access private
|
|
33
|
+
@function -get-content-selector($module) {
|
|
34
|
+
// Initialize the content selector as an empty string
|
|
35
|
+
$content-selector: "";
|
|
36
|
+
|
|
37
|
+
// Check if we should include this module in content styles
|
|
38
|
+
@if map.has-key(config.get("content-selectors"), $module) {
|
|
39
|
+
// Initialize the content class selector
|
|
40
|
+
$content: "content";
|
|
41
|
+
|
|
42
|
+
// Check if there's a shortname for the content module
|
|
43
|
+
@if map.has-key(config.get("content-classes"), "content") {
|
|
44
|
+
$content: map.get(config.get("content-classes"), "content");
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
// Apply the block prefix to the root content class
|
|
48
|
+
$content: '#{config.get("prefix-block")}#{$content}';
|
|
49
|
+
|
|
50
|
+
// Create the content selector using the content module selector
|
|
51
|
+
$list: string.split(map.get(config.get("content-selectors"), $module), ",");
|
|
52
|
+
|
|
53
|
+
@each $item in $list {
|
|
54
|
+
$content-selector: "#{$content-selector}, .#{$content} #{$item}";
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
// Return the content selector
|
|
59
|
+
@return $content-selector;
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/// Generate a content module selector with a core prefix and optional modifiers.
|
|
63
|
+
///
|
|
64
|
+
/// @param {string} $module
|
|
65
|
+
/// The content module name.
|
|
66
|
+
/// @param {string} $args...
|
|
67
|
+
/// Additional strings appended as modifiers to the class selector.
|
|
68
|
+
///
|
|
69
|
+
/// @return {selector}
|
|
70
|
+
/// A valid content module CSS selector.
|
|
71
|
+
///
|
|
72
|
+
@function selector(
|
|
73
|
+
$module,
|
|
74
|
+
$args...
|
|
75
|
+
) {
|
|
76
|
+
@if meta.type-of($module) == "map" or meta.type-of($module) == "list" {
|
|
77
|
+
// If $module is a map or list, build a selector for each item/key
|
|
78
|
+
$selectors: ();
|
|
79
|
+
$items: $module;
|
|
80
|
+
|
|
81
|
+
@if meta.type-of($module) == "map" {
|
|
82
|
+
$items: map.keys($module);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
@each $item in $items {
|
|
86
|
+
$selectors: list.append(
|
|
87
|
+
$selectors,
|
|
88
|
+
selector(
|
|
89
|
+
$item,
|
|
90
|
+
$args...
|
|
91
|
+
),
|
|
92
|
+
comma
|
|
93
|
+
);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
@return list.join($selectors, ", ");
|
|
97
|
+
} @else {
|
|
98
|
+
// Setup name var since we use `$module` later
|
|
99
|
+
$name: $module;
|
|
100
|
+
|
|
101
|
+
// Check if there's a shortname for the provided module name
|
|
102
|
+
@if map.has-key(config.get("content-classes"), $name) {
|
|
103
|
+
$name: map.get(config.get("content-classes"), $name);
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
$prefix: config.get("content-prefix");
|
|
107
|
+
|
|
108
|
+
@if $prefix and $prefix != "" {
|
|
109
|
+
$prefix: "#{$prefix}-";
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Setup the content module class name with prefix
|
|
113
|
+
$class: "#{$prefix}#{$name}";
|
|
114
|
+
|
|
115
|
+
// Apply all the arguments to class
|
|
116
|
+
@each $arg in $args {
|
|
117
|
+
// Convert arg to a string
|
|
118
|
+
$arg: "" + $arg;
|
|
119
|
+
|
|
120
|
+
// Ensure that it's not an empty string
|
|
121
|
+
@if $arg != "" {
|
|
122
|
+
// Append $arg to $class with a dash delimiter
|
|
123
|
+
$class: "#{$class}-#{$arg}";
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
// Get the content selector if one is required
|
|
128
|
+
$content-selector: -get-content-selector($module);
|
|
129
|
+
|
|
130
|
+
// Return the class
|
|
131
|
+
@return ".#{$class}#{$content-selector}";
|
|
132
|
+
}
|
|
133
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
@use "@vrembem/core";
|
|
2
|
+
@use "../functions" as fun;
|
|
3
|
+
|
|
4
|
+
@if fun.maybe-output("arrow") {
|
|
5
|
+
#{fun.selector("arrow")},
|
|
6
|
+
#{fun.selector("arrow", "up")},
|
|
7
|
+
#{fun.selector("arrow", "down")},
|
|
8
|
+
#{fun.selector("arrow", "left")},
|
|
9
|
+
#{fun.selector("arrow", "right")} {
|
|
10
|
+
@include core.arrow;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
#{fun.selector("arrow", "up")} {
|
|
14
|
+
transform: rotate(180deg);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
#{fun.selector("arrow", "left")} {
|
|
18
|
+
transform: rotate(90deg);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
#{fun.selector("arrow", "right")} {
|
|
22
|
+
transform: rotate(-90deg);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@use "@vrembem/core/tokens";
|
|
2
|
+
@use "../functions" as fun;
|
|
3
|
+
|
|
4
|
+
@if fun.maybe-output("blockquote") {
|
|
5
|
+
@include tokens.register("blockquote");
|
|
6
|
+
|
|
7
|
+
#{fun.selector("blockquote")} {
|
|
8
|
+
position: relative;
|
|
9
|
+
padding: tokens.get("blockquote", "padding", tokens.get("spacing-md"));
|
|
10
|
+
border: tokens.get("blockquote", "border", tokens.get("border"));
|
|
11
|
+
border-radius: tokens.get("blockquote", "border-radius", tokens.get("border-radius"));
|
|
12
|
+
color: tokens.get("blockquote", "foreground", currentcolor);
|
|
13
|
+
background: tokens.get("blockquote", "background", transparent);
|
|
14
|
+
|
|
15
|
+
> * + * {
|
|
16
|
+
margin-top: tokens.get("blockquote", "spacing", tokens.get("spacing-md"));
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
@use "@vrembem/core/tokens";
|
|
2
|
+
@use "../functions" as fun;
|
|
3
|
+
|
|
4
|
+
@if fun.maybe-output("code") {
|
|
5
|
+
@include tokens.register("code");
|
|
6
|
+
|
|
7
|
+
#{fun.selector("code")} {
|
|
8
|
+
padding: tokens.get("code", "padding", 0.125rem 0.375rem);
|
|
9
|
+
border: tokens.get("code", "border", null);
|
|
10
|
+
border-radius: tokens.get("code", "border-radius", tokens.get("border-radius"));
|
|
11
|
+
font-family: tokens.get("font-family-mono");
|
|
12
|
+
font-size: tokens.get("code", "font-size", tokens.get("font-size-sm"));
|
|
13
|
+
color: tokens.get("code", "foreground", tokens.get("foreground-accent-alt"));
|
|
14
|
+
overflow-wrap: break-word;
|
|
15
|
+
background: tokens.get("code", "background", tokens.get("background-alt"));
|
|
16
|
+
}
|
|
17
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
@use "@vrembem/core/tokens";
|
|
2
|
+
@use "../functions" as fun;
|
|
3
|
+
|
|
4
|
+
@if fun.maybe-output("content") {
|
|
5
|
+
@include tokens.register("content");
|
|
6
|
+
@include tokens.register("heading");
|
|
7
|
+
|
|
8
|
+
#{fun.selector("content")} {
|
|
9
|
+
font-family: tokens.get("content", "font-family", inherit);
|
|
10
|
+
font-size: tokens.get("content", "font-size", inherit);
|
|
11
|
+
line-height: tokens.get("content", "line-height", inherit);
|
|
12
|
+
color: tokens.get("content", "foreground", tokens.get("foreground"));
|
|
13
|
+
|
|
14
|
+
> * + * {
|
|
15
|
+
margin-top: tokens.get("content", "spacing", null);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
@use "sass:list";
|
|
2
|
+
@use "sass:meta";
|
|
3
|
+
@use "@vrembem/core/tokens";
|
|
4
|
+
@use "@vrembem/core/config";
|
|
5
|
+
@use "../functions" as fun;
|
|
6
|
+
|
|
7
|
+
@if fun.maybe-output("headings") {
|
|
8
|
+
@include tokens.register("headings");
|
|
9
|
+
|
|
10
|
+
#{fun.selector(config.get("content-headings"))} {
|
|
11
|
+
font-family: tokens.get("headings", "font-family", inherit);
|
|
12
|
+
font-size: tokens.get("headings", "font-size", 1em);
|
|
13
|
+
font-weight: tokens.get("headings", "font-weight", tokens.get("font-weight-semi-bold"));
|
|
14
|
+
line-height: tokens.get("headings", "line-height", inherit);
|
|
15
|
+
color: tokens.get("headings", "foreground", tokens.get("foreground-strong"));
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@each $key, $value in config.get("content-headings") {
|
|
19
|
+
$font-size: $value;
|
|
20
|
+
$line-height: null;
|
|
21
|
+
|
|
22
|
+
@if meta.type-of($value) == list {
|
|
23
|
+
$font-size: list.nth($value, 1);
|
|
24
|
+
$line-height: list.nth($value, 2);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
#{fun.selector($key)} {
|
|
28
|
+
@include tokens.override("headings", "font-size", $font-size);
|
|
29
|
+
@include tokens.override("headings", "line-height", $line-height);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
@use "@vrembem/core/tokens";
|
|
2
|
+
@use "@vrembem/core/palette";
|
|
3
|
+
@use "../functions" as fun;
|
|
4
|
+
|
|
5
|
+
@if fun.maybe-output("link") {
|
|
6
|
+
@include tokens.register("link");
|
|
7
|
+
|
|
8
|
+
#{fun.selector("link")} {
|
|
9
|
+
color: tokens.get("link", "foreground", tokens.get("foreground-accent"));
|
|
10
|
+
text-decoration: tokens.get("link", "decoration", underline);
|
|
11
|
+
text-decoration-thickness: tokens.get("link", "decoration-thickness", 1px);
|
|
12
|
+
text-underline-offset: tokens.get("link", "underline-offset", 2px);
|
|
13
|
+
|
|
14
|
+
code {
|
|
15
|
+
color: tokens.get("link", "foreground", tokens.get("foreground-accent"));
|
|
16
|
+
background-color: tokens.get("background-alt");
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// prettier-ignore
|
|
20
|
+
&:hover,
|
|
21
|
+
&:focus {
|
|
22
|
+
color: tokens.get("link", "foreground-hover", light-dark(
|
|
23
|
+
oklch(from tokens.get("foreground-accent") calc(l - 0.1) c h),
|
|
24
|
+
oklch(from tokens.get("foreground-accent") calc(l + 0.1) c h),
|
|
25
|
+
));
|
|
26
|
+
text-decoration: tokens.get("link", "decoration-hover", none);
|
|
27
|
+
|
|
28
|
+
code {
|
|
29
|
+
color: tokens.get("link", "foreground-hover", light-dark(
|
|
30
|
+
oklch(from tokens.get("foreground-accent") calc(l - 0.1) c h),
|
|
31
|
+
oklch(from tokens.get("foreground-accent") calc(l + 0.1) c h)
|
|
32
|
+
));
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
&:focus {
|
|
37
|
+
outline: tokens.get("link", "focus-ring", currentcolor dotted 1px);
|
|
38
|
+
outline-offset: tokens.get("link", "focus-ring-offset", 0.125rem);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
@use "@vrembem/core/tokens";
|
|
2
|
+
@use "../functions" as fun;
|
|
3
|
+
|
|
4
|
+
@if fun.maybe-output("list") {
|
|
5
|
+
@include tokens.register("list");
|
|
6
|
+
|
|
7
|
+
#{fun.selector("list")} {
|
|
8
|
+
margin-left: tokens.get("list", "indent", tokens.get("spacing-lg"));
|
|
9
|
+
|
|
10
|
+
ul,
|
|
11
|
+
ol {
|
|
12
|
+
margin-left: tokens.get("list", "indent", tokens.get("spacing-lg"));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
li li,
|
|
16
|
+
li + li {
|
|
17
|
+
margin-top: tokens.get("list", "spacing", tokens.get("spacing-sm"));
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
#{fun.selector("list-style-none")} {
|
|
22
|
+
list-style: none !important;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
@use "@vrembem/core/tokens";
|
|
2
|
+
@use "../functions" as fun;
|
|
3
|
+
|
|
4
|
+
@if fun.maybe-output("pre") {
|
|
5
|
+
@include tokens.register("pre");
|
|
6
|
+
|
|
7
|
+
#{fun.selector("pre")} {
|
|
8
|
+
overflow: auto;
|
|
9
|
+
padding: tokens.get("pre", "padding", tokens.get("spacing-md"));
|
|
10
|
+
border: tokens.get("pre", "border", none);
|
|
11
|
+
border-radius: tokens.get("pre", "border-radius", tokens.get("border-radius"));
|
|
12
|
+
font-family: tokens.get("font-family-mono");
|
|
13
|
+
color: tokens.get("pre", "foreground", tokens.get("foreground-strong"));
|
|
14
|
+
background: tokens.get("pre", "background", tokens.get("background-alt"));
|
|
15
|
+
|
|
16
|
+
code {
|
|
17
|
+
padding: 0;
|
|
18
|
+
border: none;
|
|
19
|
+
font-size: tokens.get("pre", "font-size", tokens.get("font-size-sm"));
|
|
20
|
+
color: inherit;
|
|
21
|
+
background: none;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
@use "@vrembem/core/tokens";
|
|
2
|
+
@use "../functions" as fun;
|
|
3
|
+
|
|
4
|
+
@if fun.maybe-output("separator") {
|
|
5
|
+
@include tokens.register("separator");
|
|
6
|
+
|
|
7
|
+
#{fun.selector("separator")} {
|
|
8
|
+
display: block;
|
|
9
|
+
height: 0;
|
|
10
|
+
border: none;
|
|
11
|
+
border-top: tokens.get("separator", "border-width", tokens.get("border-width")) tokens.get("separator", "border-style", tokens.get("border-style")) tokens.get("separator", "border-color", tokens.get("border-color"));
|
|
12
|
+
}
|
|
13
|
+
}
|