@excom/valence 0.1.0

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.
Files changed (123) hide show
  1. package/.rush/temp/chunked-rush-logs/valence.apply-exports.chunks.jsonl +1 -0
  2. package/.rush/temp/chunked-rush-logs/valence.build_package-metas.chunks.jsonl +1 -0
  3. package/.rush/temp/operation/apply-exports/all.log +1 -0
  4. package/.rush/temp/operation/apply-exports/log-chunks.jsonl +1 -0
  5. package/.rush/temp/operation/apply-exports/state.json +3 -0
  6. package/.rush/temp/operation/build_package-metas/all.log +1 -0
  7. package/.rush/temp/operation/build_package-metas/log-chunks.jsonl +1 -0
  8. package/.rush/temp/operation/build_package-metas/state.json +3 -0
  9. package/.rush/temp/shrinkwrap-deps.json +3 -0
  10. package/basic-vars.css +395 -0
  11. package/basic.css +3 -0
  12. package/package.json +35 -0
  13. package/rush-logs/valence.apply-exports.cache.log +1 -0
  14. package/rush-logs/valence.apply-exports.log +1 -0
  15. package/rush-logs/valence.build_package-metas.cache.log +1 -0
  16. package/rush-logs/valence.build_package-metas.log +1 -0
  17. package/src/aliases.css +125 -0
  18. package/src/apply.css +54 -0
  19. package/src/components/accordion.css +134 -0
  20. package/src/components/card.css +54 -0
  21. package/src/components/dropdown.css +235 -0
  22. package/src/components/group.css +119 -0
  23. package/src/components/loading.css +41 -0
  24. package/src/components/modal.css +172 -0
  25. package/src/components/nav.css +198 -0
  26. package/src/components/popover.css +83 -0
  27. package/src/components/progress.css +88 -0
  28. package/src/components/tooltip.css +209 -0
  29. package/src/content/button.css +184 -0
  30. package/src/content/code.css +68 -0
  31. package/src/content/embedded.css +49 -0
  32. package/src/content/figure.css +17 -0
  33. package/src/content/link.css +79 -0
  34. package/src/content/misc.css +29 -0
  35. package/src/content/table.css +144 -0
  36. package/src/content/typography.css +218 -0
  37. package/src/forms/basics.css +415 -0
  38. package/src/forms/checkbox-radio-switch.css +163 -0
  39. package/src/forms/input-color.css +27 -0
  40. package/src/forms/input-date.css +66 -0
  41. package/src/forms/input-file.css +37 -0
  42. package/src/forms/input-range.css +109 -0
  43. package/src/forms/input-search.css +52 -0
  44. package/src/layout/abstract.css +9 -0
  45. package/src/layout/container.css +43 -0
  46. package/src/layout/document.css +45 -0
  47. package/src/layout/grid.css +24 -0
  48. package/src/layout/landmarks.css +54 -0
  49. package/src/layout/overflow-auto.css +33 -0
  50. package/src/layout/section.css +10 -0
  51. package/src/mixins.basic.css +308 -0
  52. package/src/mixins.default.css +49 -0
  53. package/src/util.default.css +55 -0
  54. package/src/utilities/accessibility.css +69 -0
  55. package/src/utilities/opt-outs.css +32 -0
  56. package/support/demos/accordion.html +18 -0
  57. package/support/demos/aliases.html +6 -0
  58. package/support/demos/button.html +14 -0
  59. package/support/demos/card.html +8 -0
  60. package/support/demos/checkboxes.html +22 -0
  61. package/support/demos/code.html +6 -0
  62. package/support/demos/container.html +15 -0
  63. package/support/demos/css-variables.html +14 -0
  64. package/support/demos/dropdown.html +17 -0
  65. package/support/demos/embedded.html +7 -0
  66. package/support/demos/forms.html +18 -0
  67. package/support/demos/grid.html +13 -0
  68. package/support/demos/group.html +14 -0
  69. package/support/demos/input.html +11 -0
  70. package/support/demos/landmarks.html +20 -0
  71. package/support/demos/link.html +7 -0
  72. package/support/demos/loading.html +5 -0
  73. package/support/demos/modal.html +18 -0
  74. package/support/demos/nav.html +39 -0
  75. package/support/demos/opt-outs.html +8 -0
  76. package/support/demos/overflow-auto.html +12 -0
  77. package/support/demos/popover.html +6 -0
  78. package/support/demos/progress.html +4 -0
  79. package/support/demos/range.html +6 -0
  80. package/support/demos/schemes.html +12 -0
  81. package/support/demos/select.html +13 -0
  82. package/support/demos/table.html +18 -0
  83. package/support/demos/textarea.html +7 -0
  84. package/support/demos/tooltip.html +7 -0
  85. package/support/demos/typography.html +18 -0
  86. package/support/docs/ACCORDION.md +26 -0
  87. package/support/docs/ALIASES.md +35 -0
  88. package/support/docs/BUTTON.md +28 -0
  89. package/support/docs/CARD.md +23 -0
  90. package/support/docs/CHECKBOXES.md +21 -0
  91. package/support/docs/CODE.md +18 -0
  92. package/support/docs/CONTAINER.md +24 -0
  93. package/support/docs/CSS_VARIABLES.md +44 -0
  94. package/support/docs/DROPDOWN.md +22 -0
  95. package/support/docs/EMBEDDED.md +18 -0
  96. package/support/docs/FORMS.md +44 -0
  97. package/support/docs/GRID.md +19 -0
  98. package/support/docs/GROUP.md +24 -0
  99. package/support/docs/INPUT.md +26 -0
  100. package/support/docs/LANDMARKS.md +25 -0
  101. package/support/docs/LINK.md +23 -0
  102. package/support/docs/LOADING.md +15 -0
  103. package/support/docs/MODAL.md +36 -0
  104. package/support/docs/NAV.md +25 -0
  105. package/support/docs/OPT_OUTS.md +31 -0
  106. package/support/docs/OVERFLOW_AUTO.md +15 -0
  107. package/support/docs/POPOVER.md +19 -0
  108. package/support/docs/PROGRESS.md +14 -0
  109. package/support/docs/RANGE.md +16 -0
  110. package/support/docs/README.md +70 -0
  111. package/support/docs/SCHEMES.md +20 -0
  112. package/support/docs/SELECT.md +18 -0
  113. package/support/docs/TABLE.md +29 -0
  114. package/support/docs/TEXTAREA.md +16 -0
  115. package/support/docs/THEMES.md +39 -0
  116. package/support/docs/TOOLTIP.md +18 -0
  117. package/support/docs/TYPOGRAPHY.md +29 -0
  118. package/support/docs-sections.json +45 -0
  119. package/support/flat-vars.css +197 -0
  120. package/support/flat.css +4 -0
  121. package/support/package-meta.json +1820 -0
  122. package/support/paper-vars.css +203 -0
  123. package/support/paper.css +4 -0
@@ -0,0 +1,209 @@
1
+ /**
2
+ * Tooltip ([role="tooltip"])
3
+ */
4
+
5
+ @define-mixin module-tooltip {
6
+ [role="tooltip"] {
7
+ position: relative;
8
+
9
+ &:not(:--link, :--button, input) {
10
+ border-bottom: 1px dotted;
11
+ text-decoration: none;
12
+ cursor: help;
13
+ }
14
+
15
+ &[data-placement="top"]::before,
16
+ &[data-placement="top"]::after,
17
+ &::before,
18
+ &::after {
19
+ display: block;
20
+ z-index: 99;
21
+ position: absolute;
22
+ bottom: 100%;
23
+ left: 50%;
24
+ padding: 0.25rem 0.5rem;
25
+ overflow: hidden;
26
+ transform: translate(-50%, -0.25rem);
27
+ border-radius: var(--v-border-radius);
28
+ background: var(--v-tooltip-background-color);
29
+ content: attr(aria-description);
30
+ color: var(--v-tooltip-color);
31
+ font-style: normal;
32
+ font-weight: var(--v-font-weight);
33
+ font-size: var(--v-font-size);
34
+ text-decoration: none;
35
+ text-overflow: ellipsis;
36
+ white-space: nowrap;
37
+ opacity: 0;
38
+ pointer-events: none;
39
+ }
40
+
41
+ /* Caret */
42
+ &[data-placement="top"]::after,
43
+ &::after {
44
+ padding: 0;
45
+ transform: translate(-50%, 0rem);
46
+ border-top: 0.3rem solid;
47
+ border-right: 0.3rem solid transparent;
48
+ border-left: 0.3rem solid transparent;
49
+ border-radius: 0;
50
+ background-color: transparent;
51
+ content: "";
52
+ color: var(--v-tooltip-background-color);
53
+ }
54
+
55
+ &[data-placement="bottom"] {
56
+ &::before,
57
+ &::after {
58
+ top: 100%;
59
+ bottom: auto;
60
+ transform: translate(-50%, 0.25rem);
61
+ }
62
+
63
+ &:after {
64
+ transform: translate(-50%, -0.3rem);
65
+ border: 0.3rem solid transparent;
66
+ border-bottom: 0.3rem solid;
67
+ }
68
+ }
69
+
70
+ &[data-placement="left"] {
71
+ &::before,
72
+ &::after {
73
+ top: 50%;
74
+ right: 100%;
75
+ bottom: auto;
76
+ left: auto;
77
+ transform: translate(-0.25rem, -50%);
78
+ }
79
+
80
+ &:after {
81
+ transform: translate(0.3rem, -50%);
82
+ border: 0.3rem solid transparent;
83
+ border-left: 0.3rem solid;
84
+ }
85
+ }
86
+
87
+ &[data-placement="right"] {
88
+ &::before,
89
+ &::after {
90
+ top: 50%;
91
+ right: auto;
92
+ bottom: auto;
93
+ left: 100%;
94
+ transform: translate(0.25rem, -50%);
95
+ }
96
+
97
+ &:after {
98
+ transform: translate(-0.3rem, -50%);
99
+ border: 0.3rem solid transparent;
100
+ border-right: 0.3rem solid;
101
+ }
102
+ }
103
+
104
+ /* Display */
105
+ &:focus,
106
+ &:hover {
107
+ &::before,
108
+ &::after {
109
+ opacity: 1;
110
+ }
111
+ }
112
+
113
+ /* Animations, excluding touch devices */
114
+ @media (hover: hover) and (pointer: fine) {
115
+ /* Default (top) */
116
+ &:focus,
117
+ &:hover {
118
+ &::before,
119
+ &::after {
120
+ --v-tooltip-slide-to: translate(-50%, -0.25rem);
121
+ transform: translate(-50%, 0.75rem);
122
+ animation-duration: 0.2s;
123
+ animation-fill-mode: forwards;
124
+ animation-name: tooltip-slide;
125
+ opacity: 0;
126
+ }
127
+
128
+ &::after {
129
+ --v-tooltip-caret-slide-to: translate(-50%, 0rem);
130
+ transform: translate(-50%, -0.25rem);
131
+ animation-name: tooltip-caret-slide;
132
+ }
133
+ }
134
+
135
+ /* Bottom */
136
+ &[data-placement="bottom"] {
137
+ &:focus,
138
+ &:hover {
139
+ &::before,
140
+ &::after {
141
+ --v-tooltip-slide-to: translate(-50%, 0.25rem);
142
+ transform: translate(-50%, -0.75rem);
143
+ animation-name: tooltip-slide;
144
+ }
145
+
146
+ &::after {
147
+ --v-tooltip-caret-slide-to: translate(-50%, -0.3rem);
148
+ transform: translate(-50%, -0.5rem);
149
+ animation-name: tooltip-caret-slide;
150
+ }
151
+ }
152
+ }
153
+
154
+ /* Left */
155
+ &[data-placement="left"] {
156
+ &:focus,
157
+ &:hover {
158
+ &::before,
159
+ &::after {
160
+ --v-tooltip-slide-to: translate(-0.25rem, -50%);
161
+ transform: translate(0.75rem, -50%);
162
+ animation-name: tooltip-slide;
163
+ }
164
+
165
+ &::after {
166
+ --v-tooltip-caret-slide-to: translate(0.3rem, -50%);
167
+ transform: translate(0.05rem, -50%);
168
+ animation-name: tooltip-caret-slide;
169
+ }
170
+ }
171
+ }
172
+
173
+ /* Right */
174
+ &[data-placement="right"] {
175
+ &:focus,
176
+ &:hover {
177
+ &::before,
178
+ &::after {
179
+ --v-tooltip-slide-to: translate(0.25rem, -50%);
180
+ transform: translate(-0.75rem, -50%);
181
+ animation-name: tooltip-slide;
182
+ }
183
+
184
+ &::after {
185
+ --v-tooltip-caret-slide-to: translate(-0.3rem, -50%);
186
+ transform: translate(-0.05rem, -50%);
187
+ animation-name: tooltip-caret-slide;
188
+ }
189
+ }
190
+ }
191
+ }
192
+ }
193
+ @keyframes tooltip-slide {
194
+ to {
195
+ transform: var(--v-tooltip-slide-to);
196
+ opacity: 1;
197
+ }
198
+ }
199
+
200
+ @keyframes tooltip-caret-slide {
201
+ 50% {
202
+ opacity: 0;
203
+ }
204
+ to {
205
+ transform: var(--v-tooltip-caret-slide-to);
206
+ opacity: 1;
207
+ }
208
+ }
209
+ }
@@ -0,0 +1,184 @@
1
+ /**
2
+ * Button
3
+ *
4
+ * Reboot from normalize.css v8.0.1 (MIT) and sanitize.css v13.0.0 (CC0).
5
+ */
6
+
7
+ @define-mixin module-button {
8
+ :is(:--button) {
9
+ /* 1. Font styles (all browsers)
10
+ 2. Drop Safari control margin
11
+ 3. Show overflow in Edge */
12
+ margin: 0; /* 2 */
13
+ overflow: visible; /* 3 */
14
+ font-family: inherit; /* 1 */
15
+ text-transform: none; /* 1 */
16
+ /* Aliases must use `button` UA styles */
17
+ padding-block: 1px;
18
+ padding-inline: 6px;
19
+ text-indent: 0px;
20
+ text-shadow: none;
21
+ display: inline-block;
22
+ letter-spacing: normal;
23
+ text-rendering: auto;
24
+ }
25
+
26
+ /* Style buttons in iOS / Safari */
27
+ button,
28
+ [type="submit"],
29
+ [type="reset"],
30
+ [type="button"] {
31
+ -webkit-appearance: button;
32
+ }
33
+
34
+ :--button,
35
+ [type="submit"],
36
+ [type="reset"],
37
+ [type="file"]::file-selector-button {
38
+ --v-background-color: var(--v-primary-background);
39
+ --v-border-color: var(--v-primary-border);
40
+ --v-color: var(--v-primary-inverse);
41
+ --v-box-shadow: var(--v-button-box-shadow, 0 0 0 rgba(0, 0, 0, 0));
42
+ padding: var(--v-form-element-spacing-vertical)
43
+ var(--v-form-element-spacing-horizontal);
44
+ border: var(--v-border-width) solid var(--v-border-color);
45
+ border-radius: var(--v-border-radius);
46
+ outline: none;
47
+ background-color: var(--v-background-color);
48
+ box-shadow: var(--v-box-shadow);
49
+ color: var(--v-color);
50
+ font-weight: var(--v-font-weight);
51
+ font-size: var(--v-font-size);
52
+ line-height: var(--v-line-height);
53
+ text-align: center;
54
+ text-decoration: none;
55
+ cursor: pointer;
56
+ user-select: none;
57
+
58
+ transition:
59
+ background-color var(--v-transition),
60
+ border-color var(--v-transition),
61
+ color var(--v-transition),
62
+ box-shadow var(--v-transition);
63
+
64
+ &:is([aria-current]:not([aria-current="false"])),
65
+ &:is(:hover, :active, :focus) {
66
+ --v-background-color: var(--v-primary-hover-background);
67
+ --v-border-color: var(--v-primary-hover-border);
68
+ --v-box-shadow: var(--v-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0));
69
+ --v-color: var(--v-primary-inverse);
70
+ }
71
+
72
+ &:focus,
73
+ &:is([aria-current]:not([aria-current="false"])):focus {
74
+ --v-box-shadow:
75
+ var(--v-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
76
+ 0 0 0 var(--v-outline-width) var(--v-primary-focus);
77
+ }
78
+ }
79
+
80
+ [type="submit"],
81
+ [type="reset"],
82
+ [type="button"] {
83
+ margin-bottom: var(--v-spacing);
84
+ }
85
+
86
+ /**
87
+ * Secondary button / submit flavor.
88
+ * @cssclass secondary
89
+ */
90
+ /* Secondary */
91
+ :is(:--button, [type="submit"]).secondary,
92
+ [type="reset"],
93
+ [type="file"]::file-selector-button {
94
+ --v-background-color: var(--v-secondary-background);
95
+ --v-border-color: var(--v-secondary-border);
96
+ --v-color: var(--v-secondary-inverse);
97
+ cursor: pointer;
98
+
99
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
100
+ --v-background-color: var(--v-secondary-hover-background);
101
+ --v-border-color: var(--v-secondary-hover-border);
102
+ --v-color: var(--v-secondary-inverse);
103
+ }
104
+
105
+ &:focus,
106
+ &:is([aria-current]:not([aria-current="false"])):focus {
107
+ --v-box-shadow:
108
+ var(--v-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
109
+ 0 0 0 var(--v-outline-width) var(--v-secondary-focus);
110
+ }
111
+ }
112
+
113
+ /**
114
+ * High-contrast button / submit flavor.
115
+ * @cssclass contrast
116
+ */
117
+ /* Contrast */
118
+ :is(:--button, [type="submit"]).contrast {
119
+ --v-background-color: var(--v-contrast-background);
120
+ --v-border-color: var(--v-contrast-border);
121
+ --v-color: var(--v-contrast-inverse);
122
+
123
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
124
+ --v-background-color: var(--v-contrast-hover-background);
125
+ --v-border-color: var(--v-contrast-hover-border);
126
+ --v-color: var(--v-contrast-inverse);
127
+ }
128
+
129
+ &:focus,
130
+ &:is([aria-current]:not([aria-current="false"])):focus {
131
+ --v-box-shadow:
132
+ var(--v-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
133
+ 0 0 0 var(--v-outline-width) var(--v-contrast-focus);
134
+ }
135
+ }
136
+
137
+ /**
138
+ * Outline (ghost) button flavor — pair with `.secondary` / `.contrast`.
139
+ * @cssclass outline
140
+ */
141
+ /* Outline (primary) */
142
+ :is(:--button, [type="submit"]).outline,
143
+ [type="reset"].outline {
144
+ --v-background-color: transparent;
145
+ --v-color: var(--v-primary);
146
+ --v-border-color: var(--v-primary);
147
+
148
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
149
+ --v-background-color: transparent;
150
+ --v-color: var(--v-primary-hover);
151
+ --v-border-color: var(--v-primary-hover);
152
+ }
153
+ }
154
+
155
+ /* Outline (secondary) */
156
+ :is(:--button, [type="submit"]).outline.secondary,
157
+ [type="reset"].outline {
158
+ --v-color: var(--v-secondary);
159
+ --v-border-color: var(--v-secondary);
160
+
161
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
162
+ --v-color: var(--v-secondary-hover);
163
+ --v-border-color: var(--v-secondary-hover);
164
+ }
165
+ }
166
+
167
+ /* Outline (contrast) */
168
+ :is(:--button, [type="submit"]).outline.contrast {
169
+ --v-color: var(--v-contrast);
170
+ --v-border-color: var(--v-contrast);
171
+
172
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
173
+ --v-color: var(--v-contrast-hover);
174
+ --v-border-color: var(--v-contrast-hover);
175
+ }
176
+ }
177
+
178
+ /* Button [disabled] */
179
+ :where(:--button, [type="submit"], [type="reset"]):--button--disabled,
180
+ :where(fieldset[disabled]) :is(:--button, [type="submit"], [type="reset"]) {
181
+ opacity: 0.5;
182
+ pointer-events: none;
183
+ }
184
+ }
@@ -0,0 +1,68 @@
1
+ /**
2
+ * Code
3
+ *
4
+ * Reboot from normalize.css v8.0.1 (MIT) and sanitize.css v13.0.0 (CC0).
5
+ */
6
+
7
+ @define-mixin module-code {
8
+ /* 1. Inherit / scale font-size
9
+ 2. Fix odd `em` sizing */
10
+ :--pre,
11
+ :--code,
12
+ :--kbd,
13
+ :--samp {
14
+ font-size: var(--v-font-size); /* 2 */
15
+ font-family: var(--v-font-family); /* 1 */
16
+ }
17
+
18
+ :--pre :--code,
19
+ :--pre :--samp {
20
+ font-size: inherit;
21
+ font-family: inherit;
22
+ }
23
+
24
+ /* Don't overflow the container (opinionated) */
25
+ :--pre {
26
+ -ms-overflow-style: scrollbar;
27
+ overflow: auto;
28
+ }
29
+
30
+ :--pre,
31
+ :--code,
32
+ :--kbd,
33
+ :--samp {
34
+ border-radius: var(--v-border-radius);
35
+ background: var(--v-code-background-color);
36
+ color: var(--v-code-color);
37
+ font-weight: var(--v-font-weight);
38
+ line-height: initial;
39
+ }
40
+
41
+ :--code,
42
+ :--kbd,
43
+ :--samp {
44
+ display: inline-block;
45
+ padding: 0.12rem 0.25rem;
46
+ }
47
+
48
+ :--pre {
49
+ display: block;
50
+ margin-bottom: var(--v-spacing);
51
+ overflow-x: auto;
52
+
53
+ > :--code,
54
+ > :--samp {
55
+ display: block;
56
+ padding: var(--v-spacing);
57
+ background: none;
58
+ line-height: var(--v-line-height);
59
+ }
60
+ }
61
+
62
+ /* kbd */
63
+ :--kbd {
64
+ background-color: var(--v-code-kbd-background-color);
65
+ color: var(--v-code-kbd-color);
66
+ vertical-align: baseline;
67
+ }
68
+ }
@@ -0,0 +1,49 @@
1
+ /**
2
+ * Embedded content
3
+ *
4
+ * Reboot from normalize.css v8.0.1 (MIT) and sanitize.css v13.0.0 (CC0).
5
+ */
6
+
7
+ @define-mixin module-embedded {
8
+ /* Middle-align media (opinionated) */
9
+ :where(audio, canvas, iframe, :--img, svg, video) {
10
+ vertical-align: middle;
11
+ }
12
+
13
+ /* IE 9- display */
14
+ audio,
15
+ video {
16
+ display: inline-block;
17
+ }
18
+
19
+ /* iOS 4-7 display */
20
+ audio:not([controls]) {
21
+ display: none;
22
+ height: 0;
23
+ }
24
+
25
+ /* No iframe border (opinionated) */
26
+ :where(iframe) {
27
+ border-style: none;
28
+ }
29
+
30
+ /* 1. No border on linked images in IE 10
31
+ 2. Responsive by default */
32
+ :--img {
33
+ display: inline;
34
+ max-width: 100%; /* 2 */
35
+ height: auto; /* 2 */
36
+ border-style: none; /* 1 */
37
+ }
38
+
39
+ /* SVG fill matches text color (opinionated) */
40
+ :where(svg:not([fill])) {
41
+ fill: currentColor;
42
+ }
43
+
44
+ /* Hide overflow in IE */
45
+ svg:not(:root),
46
+ svg:not(:host) {
47
+ overflow: hidden;
48
+ }
49
+ }
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Figure
3
+ */
4
+
5
+ @define-mixin module-figure {
6
+ :--figure {
7
+ display: block;
8
+ margin: 0;
9
+ padding: 0;
10
+
11
+ :--figcaption {
12
+ display: block;
13
+ padding: calc(var(--v-spacing) * 0.5) 0;
14
+ color: var(--v-muted-color);
15
+ }
16
+ }
17
+ }
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Link
3
+ */
4
+
5
+ @define-mixin module-link {
6
+ :where(:--link:not(:--button)) {
7
+ --v-color: var(--v-primary);
8
+ --v-background-color: transparent;
9
+ --v-underline: var(--v-primary-underline);
10
+ display: inline;
11
+ outline: none;
12
+ background-color: var(--v-background-color); /* 1 */
13
+ color: var(--v-color);
14
+ text-decoration: var(--v-text-decoration);
15
+ text-decoration-color: var(--v-underline);
16
+ text-underline-offset: 0.125em;
17
+
18
+ transition:
19
+ background-color var(--v-transition),
20
+ color var(--v-transition),
21
+ text-decoration var(--v-transition),
22
+ box-shadow var(--v-transition);
23
+
24
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
25
+ --v-color: var(--v-primary-hover);
26
+ --v-underline: var(--v-primary-hover-underline);
27
+ --v-text-decoration: underline;
28
+ }
29
+
30
+ &:focus-visible {
31
+ box-shadow: 0 0 0 var(--v-outline-width) var(--v-primary-focus);
32
+ }
33
+
34
+ /* Secondary */
35
+ /**
36
+ * Muted / secondary link flavor.
37
+ * @cssclass secondary
38
+ */
39
+ &.secondary {
40
+ --v-color: var(--v-secondary);
41
+ --v-underline: var(--v-secondary-underline);
42
+
43
+ &:is(
44
+ [aria-current]:not([aria-current="false"]),
45
+ :hover,
46
+ :active,
47
+ :focus
48
+ ) {
49
+ --v-color: var(--v-secondary-hover);
50
+ --v-underline: var(--v-secondary-hover-underline);
51
+ }
52
+ }
53
+
54
+ /* Contrast */
55
+ /**
56
+ * High-contrast link flavor.
57
+ * @cssclass contrast
58
+ */
59
+ &.contrast {
60
+ --v-color: var(--v-contrast);
61
+ --v-underline: var(--v-contrast-underline);
62
+
63
+ &:is(
64
+ [aria-current]:not([aria-current="false"]),
65
+ :hover,
66
+ :active,
67
+ :focus
68
+ ) {
69
+ --v-color: var(--v-contrast-hover);
70
+ --v-underline: var(--v-contrast-hover-underline);
71
+ }
72
+ }
73
+ }
74
+
75
+ /* Anchor-as-button needs block-like layout */
76
+ a:--button {
77
+ display: inline-block;
78
+ }
79
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Misc
3
+ *
4
+ * Reboot from normalize.css v8.0.1 (MIT) and sanitize.css v13.0.0 (CC0).
5
+ */
6
+
7
+ @define-mixin module-misc {
8
+ /* 1. Inherit border-color in Firefox
9
+ 2. Box-sizing in Firefox */
10
+ :--hr {
11
+ display: block;
12
+ height: 0; /* 2 */
13
+ margin: var(--v-typography-spacing-vertical) 0;
14
+ border: 0;
15
+ border-top: 1px solid var(--v-muted-border-color);
16
+ color: inherit; /* 1 */
17
+ }
18
+
19
+ /* IE 10+ display */
20
+ [hidden],
21
+ template {
22
+ display: none !important;
23
+ }
24
+
25
+ /* Add the correct display in IE 9- */
26
+ canvas {
27
+ display: inline-block;
28
+ }
29
+ }