@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,172 @@
1
+ /**
2
+ * Modal (<dialog>)
3
+ */
4
+
5
+ @custom-selector :--dialog-close .close, :is(:--link, :--button)[rel="prev"];
6
+
7
+ /**
8
+ * Close control — `.close` or `:--button` / `:--link` with `rel="prev"`
9
+ * Renders the theme close icon (empty content).
10
+ * @cssclass close
11
+ */
12
+ @define-mixin modal-close-control {
13
+ --v-modal-close-icon-size: calc(1rem * var(--v-line-height));
14
+ display: block;
15
+ float: right;
16
+ width: var(--v-modal-close-icon-size);
17
+ height: var(--v-modal-close-icon-size);
18
+ margin: calc(var(--v-spacing) * -1) 0 var(--v-spacing) auto;
19
+ padding: 0;
20
+ border: none;
21
+ background-image: var(--v-icon-close);
22
+ background-position: center;
23
+ /* Scale icon to line-height, cap at 1.25rem */
24
+ background-size: auto min(var(--v-modal-close-icon-size), 1.25rem);
25
+ background-repeat: no-repeat;
26
+ background-color: transparent;
27
+ opacity: 0.5;
28
+
29
+ transition: opacity var(--v-transition);
30
+
31
+ &:is([aria-current]:not([aria-current="false"]), :hover, :active, :focus) {
32
+ opacity: 1;
33
+ }
34
+ }
35
+
36
+ /**
37
+ * Dimmer for `dialog::backdrop` and `:--dialog-backdrop-aliases`
38
+ * (`[role="presentation"]` / `.tag-backdrop`): dialog child or drawer sibling.
39
+ */
40
+ @define-mixin modal-backdrop {
41
+ display: block;
42
+ backdrop-filter: var(--v-modal-overlay-backdrop-filter);
43
+ background-color: var(--v-modal-overlay-background-color);
44
+ pointer-events: auto;
45
+ top: 0;
46
+ right: 0;
47
+ bottom: 0;
48
+ left: 0;
49
+ z-index: -1;
50
+ position: fixed;
51
+ overscroll-behavior: contain;
52
+ }
53
+
54
+ @define-mixin modal-inner {
55
+ width: 100%;
56
+ max-height: calc(100vh - var(--v-spacing) * 2);
57
+ /* mobile browsers: the visible viewport, not the one under the URL bar */
58
+ max-height: calc(100dvh - var(--v-spacing) * 2);
59
+ margin: var(--v-spacing);
60
+ overflow: auto;
61
+
62
+ @media (min-width: 576px) {
63
+ max-width: 510px;
64
+ }
65
+
66
+ @media (min-width: 768px) {
67
+ max-width: 700px;
68
+ }
69
+
70
+ @mixin abstract-wrapper {
71
+ > :--header {
72
+ > * {
73
+ margin-bottom: 0;
74
+ }
75
+
76
+ > :--dialog-close {
77
+ @mixin modal-close-control;
78
+ margin: 0;
79
+ margin-left: var(--v-spacing);
80
+ padding: 0;
81
+ float: right;
82
+ }
83
+ }
84
+
85
+ > :--footer {
86
+ text-align: right;
87
+
88
+ :--button {
89
+ margin-bottom: 0;
90
+
91
+ &:not(:first-of-type) {
92
+ margin-left: calc(var(--v-spacing) * 0.5);
93
+ }
94
+ }
95
+ }
96
+ }
97
+
98
+ @mixin abstract-wrapper {
99
+ > :--dialog-close {
100
+ @mixin modal-close-control;
101
+ }
102
+ }
103
+ }
104
+
105
+ @define-mixin module-modal {
106
+ :root,
107
+ :host {
108
+ --v-scrollbar-width: 0px;
109
+ }
110
+
111
+ :where(:has(> :--dialog.absolute)) {
112
+ /* Lowest specificity */
113
+ position: relative;
114
+ height: 600px;
115
+ width: 600px;
116
+ background-color: red;
117
+ }
118
+ :--dialog.absolute {
119
+ position: absolute;
120
+ }
121
+
122
+ :is(dialog)::backdrop,
123
+ :--dialog > :--dialog-backdrop-aliases {
124
+ @mixin modal-backdrop;
125
+ &:is(.absolute::backdrop),
126
+ &:is(.absolute > :--dialog-backdrop-aliases) {
127
+ position: absolute;
128
+ }
129
+ }
130
+ :is(dialog:modal),
131
+ :--dialog:has(> :--dialog-backdrop-aliases) {
132
+ /* Dialog scroll stays in the dialog, not the page behind it */
133
+ overscroll-behavior: contain;
134
+ }
135
+
136
+ :--dialog {
137
+ display: flex;
138
+ z-index: 999;
139
+ position: fixed;
140
+ top: 0;
141
+ right: 0;
142
+ bottom: 0;
143
+ left: 0;
144
+ align-items: center;
145
+ justify-content: center;
146
+ width: inherit;
147
+ min-width: 100%;
148
+ height: inherit;
149
+ min-height: 100%;
150
+ padding: 0;
151
+ border: 0;
152
+ color: var(--v-color);
153
+ background-color: transparent;
154
+ pointer-events: none;
155
+ > * {
156
+ pointer-events: auto;
157
+ }
158
+
159
+ /* Content */
160
+ @mixin abstract-wrapper {
161
+ > :--article {
162
+ @mixin modal-inner;
163
+ }
164
+ }
165
+
166
+ /* Closed state */
167
+ &:not(:--dialog--open) {
168
+ display: none;
169
+ }
170
+ }
171
+ /* TODO: modal animations */
172
+ }
@@ -0,0 +1,198 @@
1
+ /**
2
+ * Nav. Reboot from sanitize.css v13.0.0 (CC0).
3
+ */
4
+
5
+ @define-mixin module-nav {
6
+ /* Keep VoiceOver list semantics in Safari (opinionated) */
7
+ :where(:--nav :--li)::before {
8
+ float: left;
9
+ content: "\200B";
10
+ }
11
+
12
+ :--nav {
13
+ justify-content: space-between;
14
+ overflow: visible;
15
+ &,
16
+ :--list {
17
+ display: flex;
18
+ }
19
+ :--list {
20
+ align-items: center;
21
+ margin-bottom: 0;
22
+ padding: 0;
23
+ list-style: none;
24
+
25
+ &:first-of-type {
26
+ margin-left: calc(var(--v-nav-element-spacing-horizontal) * -1);
27
+ }
28
+ &:last-of-type {
29
+ margin-right: calc(var(--v-nav-element-spacing-horizontal) * -1);
30
+ }
31
+ }
32
+
33
+ :--li {
34
+ display: inline-block;
35
+ margin: 0;
36
+ padding: var(--v-nav-element-spacing-vertical)
37
+ var(--v-nav-element-spacing-horizontal);
38
+
39
+ :where(:--link) {
40
+ display: inline-block;
41
+ margin: calc(var(--v-nav-link-spacing-vertical) * -1)
42
+ calc(var(--v-nav-link-spacing-horizontal) * -1);
43
+ padding: var(--v-nav-link-spacing-vertical)
44
+ var(--v-nav-link-spacing-horizontal);
45
+ border-radius: var(--v-border-radius);
46
+
47
+ &:not(:hover) {
48
+ text-decoration: none;
49
+ }
50
+ }
51
+
52
+ /* Minimal support for buttons and form elements */
53
+ :--button,
54
+ input:not(
55
+ [type="checkbox"],
56
+ [type="radio"],
57
+ [type="range"],
58
+ [type="file"]
59
+ ),
60
+ select {
61
+ height: auto;
62
+ margin-right: inherit;
63
+ margin-bottom: 0;
64
+ margin-left: inherit;
65
+ padding: calc(
66
+ var(--v-nav-link-spacing-vertical) - (var(--v-border-width) * 2)
67
+ )
68
+ var(--v-nav-link-spacing-horizontal);
69
+ }
70
+ }
71
+
72
+ /* Breadcrumb */
73
+ &[aria-label="breadcrumb"] {
74
+ align-items: center;
75
+ justify-content: start;
76
+
77
+ & :--list :--li {
78
+ &:not(:first-child) {
79
+ margin-inline-start: var(--v-nav-link-spacing-horizontal);
80
+ }
81
+
82
+ :--link {
83
+ margin: calc(var(--v-nav-link-spacing-vertical) * -1) 0;
84
+ margin-inline-start: calc(var(--v-nav-link-spacing-horizontal) * -1);
85
+ }
86
+
87
+ &:not(:last-child) {
88
+ &::after {
89
+ display: inline-block;
90
+ position: absolute;
91
+ width: calc(var(--v-nav-link-spacing-horizontal) * 4);
92
+ margin: 0 calc(var(--v-nav-link-spacing-horizontal) * -1);
93
+ content: var(--v-nav-breadcrumb-divider);
94
+ color: var(--v-muted-color);
95
+ text-align: center;
96
+ text-decoration: none;
97
+ white-space: nowrap;
98
+ }
99
+ }
100
+ }
101
+
102
+ /* Minimal support for aria-current */
103
+ & :--link[aria-current]:not([aria-current="false"]) {
104
+ background-color: transparent;
105
+ color: inherit;
106
+ text-decoration: none;
107
+ pointer-events: none;
108
+ }
109
+ }
110
+ }
111
+
112
+ /* Vertical Nav */
113
+ :--aside {
114
+ display: block;
115
+
116
+ :--nav,
117
+ :--list,
118
+ :--li {
119
+ display: block;
120
+ }
121
+
122
+ :--li {
123
+ padding: calc(var(--v-nav-element-spacing-vertical) * 0.5)
124
+ var(--v-nav-element-spacing-horizontal);
125
+
126
+ :--link {
127
+ display: block;
128
+ }
129
+
130
+ /* Minimal support for links as buttons */
131
+ :--button {
132
+ margin: inherit;
133
+ }
134
+ }
135
+ }
136
+
137
+ /* Tree. Should be placed on list elements. */
138
+ :--list:--tree {
139
+ border-left: var(--v-border-width) solid var(--v-muted-border-color);
140
+ margin: 0 !important;
141
+ padding: 0 !important;
142
+ :--li {
143
+ margin: 0 !important;
144
+ padding: calc(var(--v-nav-element-spacing-vertical) * 0.25) 0 !important;
145
+ :--list:--tree {
146
+ /* sub-tree margin */
147
+ margin-left: calc(
148
+ var(--v-nav-element-spacing-horizontal) * 1.5
149
+ ) !important;
150
+ }
151
+ }
152
+ :--link,
153
+ :--details :--summary {
154
+ margin: 0;
155
+ padding: 0;
156
+ margin-left: calc(var(--v-border-width) * -1);
157
+ padding-left: calc(var(--v-nav-element-spacing-horizontal) * 1.5);
158
+ }
159
+ :--link {
160
+ border-left: var(--v-border-width) solid transparent;
161
+ border-radius: 0;
162
+ font-weight: 400;
163
+ transition:
164
+ background-color var(--v-transition),
165
+ color var(--v-transition),
166
+ box-shadow var(--v-transition),
167
+ border-color var(--v-transition),
168
+ font-weight var(--v-transition),
169
+ -webkit-text-decoration var(--v-transition);
170
+ &:hover {
171
+ border-color: var(--v-secondary-underline);
172
+ }
173
+ &[aria-current] {
174
+ border-color: var(--v-primary);
175
+ color: var(--v-primary-hover);
176
+ font-weight: 600;
177
+ &:hover {
178
+ text-decoration: none;
179
+ }
180
+ }
181
+ }
182
+ }
183
+
184
+ /* Breadcrumb RTL */
185
+ [dir="rtl"] {
186
+ :--nav {
187
+ &[aria-label="breadcrumb"] {
188
+ & :--list :--li {
189
+ &:not(:last-child) {
190
+ ::after {
191
+ content: "\\";
192
+ }
193
+ }
194
+ }
195
+ }
196
+ }
197
+ }
198
+ }
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Popover (`[popover]`).
3
+ *
4
+ * Override UA `position: fixed` centering with `position: absolute`,
5
+ * tethered via `position-anchor: auto` (implicit anchor from
6
+ * `popovertarget` / `showPopover({ source })`). `[data-placement]`
7
+ * picks the side (default: top).
8
+ *
9
+ * <button popovertarget="tip">...</button>
10
+ * <div id="tip" popover data-placement="bottom">Bubble content</div>
11
+ */
12
+
13
+ @define-mixin module-popover {
14
+ *:has(> :--popover) {
15
+ anchor-scope: --v-popover-anchor;
16
+ anchor-name: --v-popover-anchor;
17
+ }
18
+ :--popover {
19
+ /* Override UA: position: fixed; inset: 0; margin: auto; */
20
+ position: absolute;
21
+ inset: auto;
22
+ margin: 0;
23
+ position-anchor: --v-popover-anchor;
24
+
25
+ z-index: 1;
26
+ max-width: min(
27
+ var(--v-popover-max-width),
28
+ calc(100vw - var(--v-spacing) * 2)
29
+ );
30
+ padding: var(--v-spacing);
31
+ border: 1px solid var(--v-popover-border-color);
32
+ border-radius: var(--v-border-radius);
33
+ background: var(--v-popover-background-color);
34
+ color: var(--v-popover-color);
35
+ box-shadow: var(--v-popover-box-shadow);
36
+ font-size: var(--v-font-size);
37
+ font-weight: normal;
38
+ text-wrap: pretty;
39
+ overflow-wrap: break-word;
40
+ opacity: 0;
41
+
42
+ transition:
43
+ display var(--v-transition) allow-discrete,
44
+ overlay var(--v-transition) allow-discrete,
45
+ opacity var(--v-transition);
46
+
47
+ &:--popover--open {
48
+ opacity: 1;
49
+ }
50
+
51
+ @starting-style {
52
+ &:--popover--open {
53
+ opacity: 0;
54
+ }
55
+ }
56
+
57
+ &::backdrop {
58
+ display: none;
59
+ }
60
+
61
+ /* Default + explicit top */
62
+ &:not([data-placement]),
63
+ &[data-placement="top"] {
64
+ position-area: top;
65
+ margin-bottom: calc(var(--v-spacing) * 0.5);
66
+ }
67
+
68
+ &[data-placement="bottom"] {
69
+ position-area: bottom;
70
+ margin-top: calc(var(--v-spacing) * 0.5);
71
+ }
72
+
73
+ &[data-placement="left"] {
74
+ position-area: left;
75
+ margin-right: calc(var(--v-spacing) * 0.5);
76
+ }
77
+
78
+ &[data-placement="right"] {
79
+ position-area: right;
80
+ margin-left: calc(var(--v-spacing) * 0.5);
81
+ }
82
+ }
83
+ }
@@ -0,0 +1,88 @@
1
+ /**
2
+ * Progress
3
+ *
4
+ * Reboot from normalize.css v8.0.1 (MIT) and sanitize.css v13.0.0 (CC0).
5
+ */
6
+
7
+ @define-mixin module-progress {
8
+ /* 1. Display in Edge 18- / IE
9
+ 2. Vertical-align in Chrome, Edge, Firefox */
10
+ :--progress {
11
+ display: inline-block; /* 1 */
12
+ vertical-align: baseline; /* 2 */
13
+ }
14
+
15
+ :--progress {
16
+ -webkit-appearance: none;
17
+ -moz-appearance: none;
18
+
19
+ display: inline-block;
20
+ appearance: none;
21
+ width: 100%;
22
+ height: 0.5rem;
23
+ margin-bottom: calc(var(--v-spacing) * 0.5);
24
+ overflow: hidden;
25
+
26
+ border: 0;
27
+ border-radius: var(--v-border-radius);
28
+ background-color: var(--v-progress-background-color);
29
+
30
+ /* IE10 uses `color` to set the bar background-color */
31
+ color: var(--v-progress-color);
32
+
33
+ &::-webkit-progress-bar {
34
+ border-radius: var(--v-border-radius);
35
+ background: none;
36
+ }
37
+
38
+ /* Indeterminate state */
39
+ @media (prefers-reduced-motion: no-preference) {
40
+ &:--progress--indeterminate {
41
+ background: var(--v-progress-background-color)
42
+ linear-gradient(
43
+ to right,
44
+ var(--v-progress-color) 30%,
45
+ var(--v-progress-background-color) 30%
46
+ )
47
+ top left / 150% 150% no-repeat;
48
+ animation: progress-indeterminate 1s linear infinite;
49
+
50
+ &:--progress-bar {
51
+ background-color: transparent;
52
+ }
53
+ }
54
+ }
55
+ }
56
+ /* PSEUDO ELEMENTS NOT COMPATIBLE WITH CUSTOM SELECTORS. */
57
+ :is(progress):--progress--value::-webkit-progress-value,
58
+ :is(progress):--progress--value::-moz-progress-bar,
59
+ :is(:--progress-aliases):--progress--value::before {
60
+ background-color: var(--v-progress-color);
61
+ transition: inline-size var(--v-transition);
62
+ }
63
+ @media (prefers-reduced-motion: no-preference) {
64
+ :is(progress):indeterminate::-webkit-progress-value,
65
+ :is(progress):indeterminate::-moz-progress-bar,
66
+ :is(:--progress-aliases):not(:--progress--value)::before {
67
+ background-color: transparent;
68
+ }
69
+ }
70
+
71
+ [dir="rtl"] {
72
+ @media (prefers-reduced-motion: no-preference) {
73
+ :--progress--indeterminate {
74
+ animation-direction: reverse;
75
+ }
76
+ }
77
+ }
78
+
79
+ @keyframes progress-indeterminate {
80
+ 0% {
81
+ background-position: 200% 0;
82
+ }
83
+
84
+ 100% {
85
+ background-position: -200% 0;
86
+ }
87
+ }
88
+ }