@carissa-io/theme-default 0.3.10 → 0.3.12
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/DESIGN.md +12 -2
- package/README.md +3 -1
- package/dist/index.css +241 -1
- package/package.json +17 -2
- package/scss/index.scss +63 -0
package/DESIGN.md
CHANGED
|
@@ -126,10 +126,11 @@ From [components-checkbox](components/components-checkbox): the whole row (box a
|
|
|
126
126
|
least 44px tall. The label is body text (1rem, `#171717`), not the uppercase field-label style.
|
|
127
127
|
- **Box:** 20px square, square corners, 1px `#666666` border; the border turns black on hover.
|
|
128
128
|
- **Checked:** black background with a white Lucide `check` mark.
|
|
129
|
+
- **Indeterminate (mixed):** the checked box (`--c-primary` fill and border) with a 10px by 2px square dash in `--c-on-primary` instead of the check, drawn with CSS, so it follows the mode: 21.00:1 in both modes for the dash on the box (above the 4.5:1 text figure), and the box border on the background is 21.00:1 light, 19.80:1 dark (3:1 minimum). It sits after "checked" and before invalid, disabled and focus, so an invalid box keeps its red border, a disabled one turns `--c-disabled-text` on `--c-surface` (the dash follows, exempt from contrast) and the keyboard focus is the filled-box ring below (1px `--c-focus`, offset 2px). Hover only changes the border, which is already `--c-primary`. A test asserts the dash contrast in both modes.
|
|
129
130
|
- **Disabled:** `#a3a3a3` label and mark on a `#f5f5f5` box with a `#d4d4d4` border; no hover.
|
|
130
131
|
- **Error:** `#dc3545`, 13px, under the row; the box border turns red too. The built-in error shows after the first
|
|
131
132
|
interaction, an error passed by the parent shows at once.
|
|
132
|
-
- **Focus:** keyboard focus (`:focus-visible`): an empty box thickens its border to 2px; a checked (black) box draws a 1px
|
|
133
|
+
- **Focus:** keyboard focus (`:focus-visible`): an empty box thickens its border to 2px; a checked or indeterminate (black) box draws a 1px
|
|
133
134
|
black ring offset by 2px.
|
|
134
135
|
|
|
135
136
|
## Switch
|
|
@@ -418,11 +419,20 @@ From [components-color-picker](components/components-color-picker): `ColorPicker
|
|
|
418
419
|
## Async autocomplete
|
|
419
420
|
From [components-async-autocomplete](components/components-async-autocomplete): `AsyncAutocomplete`. The field, the panel and the options are the Combobox's (reused figures, no new contrast). While a request is pending the field shows a 16px spinner at the arrow's place: a 2px `--c-primary` arc (21:1 / 19.8:1) over a `--c-surface-active` track, slowed down under `prefers-reduced-motion`. The states are written in the panel: `loading` and `empty` in `--c-muted` (5.74:1 / 7.85:1, the Listbox's empty message color) and `error` in `--c-error` (4.53:1 / 7.16:1 on the background, which is the panel's); the state is also exposed as `aria-busy` and `data-state`, so colour is never the only signal. Open takes the `--c-focus` border.
|
|
420
421
|
|
|
422
|
+
## Section and container
|
|
423
|
+
From [components-section](components/components-section): `Container` and `Section`. Layout only: gutters of 1rem growing to 2rem at 40rem, container widths of 40, 48, 64 and 80rem, and vertical rhythms of 2, 4 and 6rem. The section title is `--c-text` in the h2 style (17.93:1 / 18.16:1 on the background) and the lead paragraph is `--c-muted` at the lead size (5.74:1 / 7.85:1 on the background, 5.27:1 / 7.11:1 on `--c-surface`), so both pass AA on either ground. A section with a title is a landmark named by it.
|
|
424
|
+
|
|
425
|
+
## Faq
|
|
426
|
+
From [components-faq](components/components-faq): `Faq`. It is the Accordion (the box, the `--c-muted` rules, the `--c-surface` header hover and the 1px `--c-focus` ring documented in the Accordion section), so no new figure for the questions. The answers are `--c-text` (17.93:1 / 18.16:1) at a 1.6 line height and the list is capped at 48rem. The block must stay after the accordion block, because the FAQ stylesheet forwards the accordion's.
|
|
427
|
+
|
|
428
|
+
## Carousel
|
|
429
|
+
From [components-carousel](components/components-carousel): `Carousel`. The arrows and the pause / play button are the secondary button's: square, 2.75rem, a 1px `--c-muted` border (5.74:1 / 7.85:1 on the background), a `--c-surface-active` hover and a `--c-text` glyph (17.93:1 / 18.16:1; 14.23:1 / 13.88:1 on the hover). The glyphs (corner, bars, triangle) are drawn with borders in `currentColor`, so they follow the mode and need no new colour. Disabled arrows are at half opacity (exempt). The dots are 0.625rem circles in `--c-muted` (5.74:1 / 7.85:1 on the background, 5.27:1 / 7.11:1 on `--c-surface`, above the 3:1 minimum for graphics) and the current one is `--c-primary` (21:1 / 19.8:1) and 1.5rem long. Colour is not the only cue: the current dot is a bar against circles, and it also carries `aria-current`; the lightness gap between the two colours is 3.66:1 in light and 2.52:1 in dark (below 3:1 there, which the shape makes up for). The keyboard ring is the theme's 1px `--c-focus` outline offset by 2px (21:1 / 19.8:1). Transitions run at 0.2s and stop under `prefers-reduced-motion`.
|
|
430
|
+
|
|
421
431
|
## Keyboard focus (all controls)
|
|
422
432
|
One rule keeps the controls coherent: **an outlined control thickens its own border from 1px to 2px, black** (text fields,
|
|
423
433
|
select, combobox, date picker, textarea, upload, empty checkbox, off switch, radio, secondary and ghost buttons); **a filled
|
|
424
434
|
(black) control draws a separate 1px black ring offset by 2px**, because a thicker border would be invisible on a black fill
|
|
425
|
-
(primary button, checked checkbox, on switch, slider thumb). Calendar days and the upload remove button use an inset 1px ring.
|
|
435
|
+
(primary button, checked or indeterminate checkbox, on switch, slider thumb). Calendar days and the upload remove button use an inset 1px ring.
|
|
426
436
|
|
|
427
437
|
## Guidelines
|
|
428
438
|
- **Accessibility:** 4.5:1 contrast for body text; interactive elements are at least 44px tall.
|
package/README.md
CHANGED
|
@@ -142,9 +142,11 @@ it: check the names against the theme's `scss/_tokens.scss` before you switch.
|
|
|
142
142
|
|
|
143
143
|
## What it configures
|
|
144
144
|
`components-input`, `-button`, `-checkbox`, `-switch`, `-radio-group`, `-slider`, `-popover`, `-listbox`, `-select`,
|
|
145
|
-
`-combobox`, `-upload`, `-calendar`, `-date-picker`, `-search`, `-typography`, `-card`, `-alert`, `-spinner`, `-modal`, `-toast`, `-divider`, `-badge`, `-tag`, `-link`, `-avatar`, `-skeleton`, `-progress`, `-tooltip`, `-prose`, `-tabs`, `-accordion`, `-breadcrumb`, `-pagination`, `-stepper`, `-sidebar`, `-navbar`, `-drawer`, `-menu`, `-table`, `-list`, `-description-list`, `-stat`, `-empty-state`, `-timeline`, `-tree`, `-code`, `-field`, `-number-input`, `-otp-input`, `-phone`, `-tag-input`, `-time-picker`, `-date-range`, `-rating`, `-color-picker` and `-
|
|
145
|
+
`-combobox`, `-upload`, `-calendar`, `-date-picker`, `-search`, `-typography`, `-card`, `-alert`, `-spinner`, `-modal`, `-toast`, `-divider`, `-badge`, `-tag`, `-link`, `-avatar`, `-skeleton`, `-progress`, `-tooltip`, `-prose`, `-tabs`, `-accordion`, `-breadcrumb`, `-pagination`, `-stepper`, `-sidebar`, `-navbar`, `-drawer`, `-menu`, `-table`, `-list`, `-description-list`, `-stat`, `-empty-state`, `-timeline`, `-tree`, `-code`, `-field`, `-number-input`, `-otp-input`, `-phone`, `-tag-input`, `-time-picker`, `-date-range`, `-rating`, `-color-picker`, `-async-autocomplete`, `-section`, `-faq` and `-carousel`. `components-email`, `-password`, `-url` and `-textarea`
|
|
146
146
|
are styled through the input.
|
|
147
147
|
|
|
148
|
+
The checkbox's mixed state (`indeterminate`, from the next `components-checkbox` release, class `c-checkbox--indeterminate`) is the checked box with a 10px dash in `--c-on-primary`; on an older checkbox the rule is simply unused.
|
|
149
|
+
|
|
148
150
|
## Change a value
|
|
149
151
|
The palette and the values shared by every component (fonts, radius, minimum height, focus ring, transition, label style, dropdown
|
|
150
152
|
arrow) are the Sass variables of `scss/_tokens.scss` (the [tokens](#tokens)); each component has one `@use ... with (...)` block of overrides
|
package/dist/index.css
CHANGED
|
@@ -364,6 +364,8 @@
|
|
|
364
364
|
}
|
|
365
365
|
.c-checkbox__mark {
|
|
366
366
|
display: inline-flex;
|
|
367
|
+
align-items: center;
|
|
368
|
+
justify-content: center;
|
|
367
369
|
width: 1rem;
|
|
368
370
|
height: 1rem;
|
|
369
371
|
opacity: 0;
|
|
@@ -373,6 +375,13 @@
|
|
|
373
375
|
width: 100%;
|
|
374
376
|
height: 100%;
|
|
375
377
|
}
|
|
378
|
+
.c-checkbox__dash {
|
|
379
|
+
display: block;
|
|
380
|
+
width: 0.625rem;
|
|
381
|
+
height: 2px;
|
|
382
|
+
background: currentcolor;
|
|
383
|
+
border-radius: 0;
|
|
384
|
+
}
|
|
376
385
|
.c-checkbox__label {
|
|
377
386
|
min-width: 0;
|
|
378
387
|
}
|
|
@@ -391,6 +400,14 @@
|
|
|
391
400
|
.c-checkbox__control:checked + .c-checkbox__box .c-checkbox__mark {
|
|
392
401
|
opacity: 1;
|
|
393
402
|
}
|
|
403
|
+
.c-checkbox--indeterminate .c-checkbox__control + .c-checkbox__box {
|
|
404
|
+
color: var(--c-on-primary);
|
|
405
|
+
background: var(--c-primary);
|
|
406
|
+
border-color: var(--c-primary);
|
|
407
|
+
}
|
|
408
|
+
.c-checkbox--indeterminate .c-checkbox__control + .c-checkbox__box .c-checkbox__mark {
|
|
409
|
+
opacity: 1;
|
|
410
|
+
}
|
|
394
411
|
.c-checkbox--invalid .c-checkbox__control + .c-checkbox__box {
|
|
395
412
|
border-color: var(--c-error);
|
|
396
413
|
}
|
|
@@ -409,7 +426,7 @@
|
|
|
409
426
|
border-color: var(--c-focus);
|
|
410
427
|
box-shadow: inset 0 0 0 1px var(--c-focus);
|
|
411
428
|
}
|
|
412
|
-
.c-checkbox__control:checked:focus-visible + .c-checkbox__box {
|
|
429
|
+
.c-checkbox__control:checked:focus-visible + .c-checkbox__box, .c-checkbox--indeterminate .c-checkbox__control:focus-visible + .c-checkbox__box {
|
|
413
430
|
outline: 1px solid var(--c-focus);
|
|
414
431
|
outline-offset: 2px;
|
|
415
432
|
box-shadow: none;
|
|
@@ -4407,6 +4424,10 @@ ol.c-list {
|
|
|
4407
4424
|
outline-offset: -2px;
|
|
4408
4425
|
}
|
|
4409
4426
|
|
|
4427
|
+
.c-code-block--has-copy .c-code-block__pre {
|
|
4428
|
+
padding-top: 2.5rem;
|
|
4429
|
+
}
|
|
4430
|
+
|
|
4410
4431
|
.c-code-block__code {
|
|
4411
4432
|
font-size: inherit;
|
|
4412
4433
|
}
|
|
@@ -5042,3 +5063,222 @@ ol.c-list {
|
|
|
5042
5063
|
animation-duration: 2s;
|
|
5043
5064
|
}
|
|
5044
5065
|
}
|
|
5066
|
+
.c-container {
|
|
5067
|
+
box-sizing: border-box;
|
|
5068
|
+
width: 100%;
|
|
5069
|
+
margin-inline: auto;
|
|
5070
|
+
padding-inline: 1rem;
|
|
5071
|
+
}
|
|
5072
|
+
@media (min-width: 40rem) {
|
|
5073
|
+
.c-container {
|
|
5074
|
+
padding-inline: 2rem;
|
|
5075
|
+
}
|
|
5076
|
+
}
|
|
5077
|
+
|
|
5078
|
+
.c-container--sm {
|
|
5079
|
+
max-width: 40rem;
|
|
5080
|
+
}
|
|
5081
|
+
|
|
5082
|
+
.c-container--md {
|
|
5083
|
+
max-width: 48rem;
|
|
5084
|
+
}
|
|
5085
|
+
|
|
5086
|
+
.c-container--lg {
|
|
5087
|
+
max-width: 64rem;
|
|
5088
|
+
}
|
|
5089
|
+
|
|
5090
|
+
.c-container--xl {
|
|
5091
|
+
max-width: 80rem;
|
|
5092
|
+
}
|
|
5093
|
+
|
|
5094
|
+
.c-container--full {
|
|
5095
|
+
max-width: none;
|
|
5096
|
+
}
|
|
5097
|
+
|
|
5098
|
+
.c-section {
|
|
5099
|
+
box-sizing: border-box;
|
|
5100
|
+
}
|
|
5101
|
+
|
|
5102
|
+
.c-section--sm {
|
|
5103
|
+
padding-block: 2rem;
|
|
5104
|
+
}
|
|
5105
|
+
|
|
5106
|
+
.c-section--md {
|
|
5107
|
+
padding-block: 4rem;
|
|
5108
|
+
}
|
|
5109
|
+
|
|
5110
|
+
.c-section--lg {
|
|
5111
|
+
padding-block: 6rem;
|
|
5112
|
+
}
|
|
5113
|
+
|
|
5114
|
+
.c-section__header {
|
|
5115
|
+
display: flex;
|
|
5116
|
+
flex-direction: column;
|
|
5117
|
+
gap: 0.75rem;
|
|
5118
|
+
max-width: 40rem;
|
|
5119
|
+
margin-bottom: 2rem;
|
|
5120
|
+
}
|
|
5121
|
+
|
|
5122
|
+
.c-section__title {
|
|
5123
|
+
margin: 0;
|
|
5124
|
+
font-size: 1.75rem;
|
|
5125
|
+
font-weight: 900;
|
|
5126
|
+
line-height: 1.2;
|
|
5127
|
+
color: var(--c-text);
|
|
5128
|
+
}
|
|
5129
|
+
|
|
5130
|
+
.c-section__description {
|
|
5131
|
+
margin: 0;
|
|
5132
|
+
font-size: 1.25rem;
|
|
5133
|
+
line-height: 1.6;
|
|
5134
|
+
color: var(--c-muted);
|
|
5135
|
+
}
|
|
5136
|
+
|
|
5137
|
+
.c-faq {
|
|
5138
|
+
max-width: 48rem;
|
|
5139
|
+
}
|
|
5140
|
+
|
|
5141
|
+
.c-faq .c-accordion__content {
|
|
5142
|
+
line-height: 1.6;
|
|
5143
|
+
color: var(--c-text);
|
|
5144
|
+
}
|
|
5145
|
+
|
|
5146
|
+
.c-carousel {
|
|
5147
|
+
box-sizing: border-box;
|
|
5148
|
+
}
|
|
5149
|
+
|
|
5150
|
+
.c-carousel__viewport {
|
|
5151
|
+
overflow: hidden;
|
|
5152
|
+
}
|
|
5153
|
+
|
|
5154
|
+
.c-carousel__track {
|
|
5155
|
+
position: relative;
|
|
5156
|
+
display: flex;
|
|
5157
|
+
gap: 1rem;
|
|
5158
|
+
overflow-x: auto;
|
|
5159
|
+
overscroll-behavior-x: contain;
|
|
5160
|
+
scroll-snap-type: x mandatory;
|
|
5161
|
+
scrollbar-width: none;
|
|
5162
|
+
touch-action: pan-x pan-y pinch-zoom;
|
|
5163
|
+
}
|
|
5164
|
+
.c-carousel__track::-webkit-scrollbar {
|
|
5165
|
+
display: none;
|
|
5166
|
+
}
|
|
5167
|
+
|
|
5168
|
+
.c-carousel__slide {
|
|
5169
|
+
box-sizing: border-box;
|
|
5170
|
+
flex: 0 0 calc((100% - 1rem * (var(--c-carousel-per-view, 1) - 1)) / var(--c-carousel-per-view, 1));
|
|
5171
|
+
min-width: 0;
|
|
5172
|
+
scroll-snap-align: start;
|
|
5173
|
+
}
|
|
5174
|
+
|
|
5175
|
+
.c-carousel__controls {
|
|
5176
|
+
display: flex;
|
|
5177
|
+
gap: 1rem;
|
|
5178
|
+
align-items: center;
|
|
5179
|
+
justify-content: center;
|
|
5180
|
+
margin-top: 1rem;
|
|
5181
|
+
}
|
|
5182
|
+
|
|
5183
|
+
.c-carousel__arrow,
|
|
5184
|
+
.c-carousel__toggle {
|
|
5185
|
+
position: relative;
|
|
5186
|
+
box-sizing: border-box;
|
|
5187
|
+
flex: none;
|
|
5188
|
+
width: 2.75rem;
|
|
5189
|
+
height: 2.75rem;
|
|
5190
|
+
padding: 0;
|
|
5191
|
+
color: var(--c-text);
|
|
5192
|
+
cursor: pointer;
|
|
5193
|
+
background: var(--c-background);
|
|
5194
|
+
border: 1px solid var(--c-muted);
|
|
5195
|
+
border-radius: 0;
|
|
5196
|
+
transition: background-color 0.2s ease-out;
|
|
5197
|
+
}
|
|
5198
|
+
.c-carousel__arrow:hover:not(:disabled),
|
|
5199
|
+
.c-carousel__toggle:hover:not(:disabled) {
|
|
5200
|
+
background: var(--c-surface-active);
|
|
5201
|
+
}
|
|
5202
|
+
.c-carousel__arrow:focus-visible,
|
|
5203
|
+
.c-carousel__toggle:focus-visible {
|
|
5204
|
+
outline: 1px solid var(--c-focus);
|
|
5205
|
+
outline-offset: 2px;
|
|
5206
|
+
}
|
|
5207
|
+
.c-carousel__arrow:disabled,
|
|
5208
|
+
.c-carousel__toggle:disabled {
|
|
5209
|
+
cursor: not-allowed;
|
|
5210
|
+
opacity: 0.5;
|
|
5211
|
+
}
|
|
5212
|
+
.c-carousel__arrow::before,
|
|
5213
|
+
.c-carousel__toggle::before {
|
|
5214
|
+
position: absolute;
|
|
5215
|
+
top: 50%;
|
|
5216
|
+
left: 50%;
|
|
5217
|
+
box-sizing: border-box;
|
|
5218
|
+
content: "";
|
|
5219
|
+
}
|
|
5220
|
+
|
|
5221
|
+
.c-carousel__arrow::before {
|
|
5222
|
+
width: 0.5rem;
|
|
5223
|
+
height: 0.5rem;
|
|
5224
|
+
border-top: 2px solid currentColor;
|
|
5225
|
+
border-right: 2px solid currentColor;
|
|
5226
|
+
}
|
|
5227
|
+
|
|
5228
|
+
.c-carousel__arrow--next::before {
|
|
5229
|
+
transform: translate(-65%, -50%) rotate(45deg);
|
|
5230
|
+
}
|
|
5231
|
+
|
|
5232
|
+
.c-carousel__arrow--prev::before {
|
|
5233
|
+
transform: translate(-35%, -50%) rotate(-135deg);
|
|
5234
|
+
}
|
|
5235
|
+
|
|
5236
|
+
.c-carousel__toggle--playing::before {
|
|
5237
|
+
width: 0.5rem;
|
|
5238
|
+
height: 0.75rem;
|
|
5239
|
+
border-right: 3px solid currentColor;
|
|
5240
|
+
border-left: 3px solid currentColor;
|
|
5241
|
+
transform: translate(-50%, -50%);
|
|
5242
|
+
}
|
|
5243
|
+
|
|
5244
|
+
.c-carousel__toggle--paused::before {
|
|
5245
|
+
border-top: 0.375rem solid transparent;
|
|
5246
|
+
border-bottom: 0.375rem solid transparent;
|
|
5247
|
+
border-left: 0.625rem solid currentColor;
|
|
5248
|
+
transform: translate(-35%, -50%);
|
|
5249
|
+
}
|
|
5250
|
+
|
|
5251
|
+
.c-carousel__dots {
|
|
5252
|
+
display: flex;
|
|
5253
|
+
gap: 0.5rem;
|
|
5254
|
+
align-items: center;
|
|
5255
|
+
}
|
|
5256
|
+
|
|
5257
|
+
.c-carousel__dot {
|
|
5258
|
+
box-sizing: border-box;
|
|
5259
|
+
width: 0.625rem;
|
|
5260
|
+
height: 0.625rem;
|
|
5261
|
+
padding: 0;
|
|
5262
|
+
cursor: pointer;
|
|
5263
|
+
background: var(--c-muted);
|
|
5264
|
+
border: 0;
|
|
5265
|
+
border-radius: 0;
|
|
5266
|
+
transition: width 0.2s ease-out, background-color 0.2s ease-out;
|
|
5267
|
+
}
|
|
5268
|
+
.c-carousel__dot:focus-visible {
|
|
5269
|
+
outline: 1px solid var(--c-focus);
|
|
5270
|
+
outline-offset: 2px;
|
|
5271
|
+
}
|
|
5272
|
+
|
|
5273
|
+
.c-carousel__dot--current {
|
|
5274
|
+
width: 1.5rem;
|
|
5275
|
+
background: var(--c-primary);
|
|
5276
|
+
}
|
|
5277
|
+
|
|
5278
|
+
@media (prefers-reduced-motion: reduce) {
|
|
5279
|
+
.c-carousel__arrow,
|
|
5280
|
+
.c-carousel__toggle,
|
|
5281
|
+
.c-carousel__dot {
|
|
5282
|
+
transition: none;
|
|
5283
|
+
}
|
|
5284
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@carissa-io/theme-default",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.12",
|
|
4
4
|
"description": "Carissa UI: the default theme (Swiss minimalism) as SCSS variable overrides of the Carissa components, with a compiled CSS build",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"style": "dist/index.css",
|
|
@@ -93,7 +93,10 @@
|
|
|
93
93
|
"@carissa-io/components-date-range": "^0.1.0",
|
|
94
94
|
"@carissa-io/components-rating": "^0.1.0",
|
|
95
95
|
"@carissa-io/components-color-picker": "^0.1.0",
|
|
96
|
-
"@carissa-io/components-async-autocomplete": "^0.1.0"
|
|
96
|
+
"@carissa-io/components-async-autocomplete": "^0.1.0",
|
|
97
|
+
"@carissa-io/components-section": "^0.1.0",
|
|
98
|
+
"@carissa-io/components-faq": "^0.1.0",
|
|
99
|
+
"@carissa-io/components-carousel": "^0.1.0"
|
|
97
100
|
},
|
|
98
101
|
"peerDependenciesMeta": {
|
|
99
102
|
"@carissa-io/components-input": {
|
|
@@ -275,6 +278,15 @@
|
|
|
275
278
|
},
|
|
276
279
|
"@carissa-io/components-async-autocomplete": {
|
|
277
280
|
"optional": true
|
|
281
|
+
},
|
|
282
|
+
"@carissa-io/components-section": {
|
|
283
|
+
"optional": true
|
|
284
|
+
},
|
|
285
|
+
"@carissa-io/components-faq": {
|
|
286
|
+
"optional": true
|
|
287
|
+
},
|
|
288
|
+
"@carissa-io/components-carousel": {
|
|
289
|
+
"optional": true
|
|
278
290
|
}
|
|
279
291
|
},
|
|
280
292
|
"devDependencies": {
|
|
@@ -287,6 +299,7 @@
|
|
|
287
299
|
"@carissa-io/components-button": "^0.1.1",
|
|
288
300
|
"@carissa-io/components-calendar": "^0.1.1",
|
|
289
301
|
"@carissa-io/components-card": "^0.1.0",
|
|
302
|
+
"@carissa-io/components-carousel": "^0.1.0",
|
|
290
303
|
"@carissa-io/components-checkbox": "^0.1.1",
|
|
291
304
|
"@carissa-io/components-code": "^0.1.0",
|
|
292
305
|
"@carissa-io/components-color-picker": "^0.1.0",
|
|
@@ -297,6 +310,7 @@
|
|
|
297
310
|
"@carissa-io/components-divider": "^0.1.0",
|
|
298
311
|
"@carissa-io/components-drawer": "^0.1.0",
|
|
299
312
|
"@carissa-io/components-empty-state": "^0.1.0",
|
|
313
|
+
"@carissa-io/components-faq": "^0.1.0",
|
|
300
314
|
"@carissa-io/components-field": "^0.1.0",
|
|
301
315
|
"@carissa-io/components-input": "^0.2.1",
|
|
302
316
|
"@carissa-io/components-link": "^0.1.0",
|
|
@@ -315,6 +329,7 @@
|
|
|
315
329
|
"@carissa-io/components-radio-group": "^0.1.1",
|
|
316
330
|
"@carissa-io/components-rating": "^0.1.0",
|
|
317
331
|
"@carissa-io/components-search": "^0.1.1",
|
|
332
|
+
"@carissa-io/components-section": "^0.1.0",
|
|
318
333
|
"@carissa-io/components-select": "^0.1.1",
|
|
319
334
|
"@carissa-io/components-sidebar": "^0.1.0",
|
|
320
335
|
"@carissa-io/components-skeleton": "^0.1.0",
|
package/scss/index.scss
CHANGED
|
@@ -138,6 +138,14 @@
|
|
|
138
138
|
$c-checkbox-mark-color: $var-on-primary,
|
|
139
139
|
$c-checkbox-mark-size: 1rem,
|
|
140
140
|
|
|
141
|
+
// Indeterminate: the checked box, with a 10px by 2px dash in the mark colour
|
|
142
|
+
$c-checkbox-indeterminate-background: $var-primary,
|
|
143
|
+
$c-checkbox-indeterminate-border-color: $var-primary,
|
|
144
|
+
$c-checkbox-indeterminate-mark-color: $var-on-primary,
|
|
145
|
+
$c-checkbox-indeterminate-mark-width: 0.625rem,
|
|
146
|
+
$c-checkbox-indeterminate-mark-thickness: 2px,
|
|
147
|
+
$c-checkbox-indeterminate-mark-radius: 0,
|
|
148
|
+
|
|
141
149
|
// Disabled: #a3a3a3 on #f5f5f5
|
|
142
150
|
$c-checkbox-disabled-color: $var-disabled-text,
|
|
143
151
|
$c-checkbox-disabled-background: $var-surface,
|
|
@@ -1597,3 +1605,58 @@
|
|
|
1597
1605
|
$c-async-autocomplete-empty-color: $var-muted,
|
|
1598
1606
|
$c-async-autocomplete-error-color: $var-error
|
|
1599
1607
|
);
|
|
1608
|
+
|
|
1609
|
+
// Section and container: layout only. Gutters of 1rem growing to 2rem and the three vertical rhythms are plain lengths; the
|
|
1610
|
+
// section title is --c-text (17.93:1 / 18.16:1) in the theme's h2 style and the lead paragraph is --c-muted (5.74:1 / 7.85:1).
|
|
1611
|
+
@use '@carissa-io/components-section/scss' as section with (
|
|
1612
|
+
$c-container-gutter: 1rem,
|
|
1613
|
+
$c-container-gutter-wide: 2rem,
|
|
1614
|
+
$c-section-spacing-sm: 2rem,
|
|
1615
|
+
$c-section-spacing-md: 4rem,
|
|
1616
|
+
$c-section-spacing-lg: 6rem,
|
|
1617
|
+
$c-section-header-gap: 0.75rem,
|
|
1618
|
+
$c-section-header-margin-bottom: 2rem,
|
|
1619
|
+
$c-section-title-font-size: $font-size-h2,
|
|
1620
|
+
$c-section-title-font-weight: $font-weight-black,
|
|
1621
|
+
$c-section-title-line-height: 1.2,
|
|
1622
|
+
$c-section-title-color: $var-text,
|
|
1623
|
+
$c-section-description-font-size: $font-size-lead,
|
|
1624
|
+
$c-section-description-line-height: 1.6,
|
|
1625
|
+
$c-section-description-color: $var-muted
|
|
1626
|
+
);
|
|
1627
|
+
|
|
1628
|
+
// FAQ: the accordion block above does the look (its stylesheet is forwarded by the faq one, so keep this block after it); the
|
|
1629
|
+
// answers are --c-text (17.93:1 / 18.16:1) at a 1.6 line height and the list is capped at a readable measure.
|
|
1630
|
+
@use '@carissa-io/components-faq/scss' as faq with (
|
|
1631
|
+
$c-faq-max-width: 48rem,
|
|
1632
|
+
$c-faq-answer-color: $var-text,
|
|
1633
|
+
$c-faq-answer-line-height: 1.6
|
|
1634
|
+
);
|
|
1635
|
+
|
|
1636
|
+
// Carousel: the arrows and the pause / play button are the secondary button (--c-muted border, --c-text glyph at 17.93:1 / 18.16:1, a
|
|
1637
|
+
// --c-surface-active hover), square like every control of the theme. Inactive dots are --c-muted and the
|
|
1638
|
+
// current one is --c-primary and longer (1.5rem against 0.625rem), so position is not told by colour alone. The ring is the
|
|
1639
|
+
// theme's --c-focus.
|
|
1640
|
+
@use '@carissa-io/components-carousel/scss' as carousel with (
|
|
1641
|
+
$c-carousel-gap: 1rem,
|
|
1642
|
+
$c-carousel-transition-duration: $transition-duration,
|
|
1643
|
+
$c-carousel-controls-gap: 1rem,
|
|
1644
|
+
$c-carousel-controls-margin-top: 1rem,
|
|
1645
|
+
$c-carousel-button-size: $min-height,
|
|
1646
|
+
$c-carousel-button-radius: $radius,
|
|
1647
|
+
$c-carousel-button-border-width: 1px,
|
|
1648
|
+
$c-carousel-button-border-color: $var-muted,
|
|
1649
|
+
$c-carousel-button-color: $var-text,
|
|
1650
|
+
$c-carousel-button-background: $var-background,
|
|
1651
|
+
$c-carousel-button-background-hover: $var-surface-active,
|
|
1652
|
+
$c-carousel-button-disabled-opacity: 0.5,
|
|
1653
|
+
$c-carousel-icon-size: 0.5rem,
|
|
1654
|
+
$c-carousel-icon-thickness: 2px,
|
|
1655
|
+
$c-carousel-dot-size: 0.625rem,
|
|
1656
|
+
$c-carousel-dot-size-current: 1.5rem,
|
|
1657
|
+
$c-carousel-dot-gap: 0.5rem,
|
|
1658
|
+
$c-carousel-dot-color: $var-muted,
|
|
1659
|
+
$c-carousel-dot-color-current: $var-primary,
|
|
1660
|
+
$c-carousel-focus-outline: $focus-width solid $var-focus,
|
|
1661
|
+
$c-carousel-focus-outline-offset: 2px
|
|
1662
|
+
);
|