@carissa-io/theme-default 0.3.2 → 0.3.4
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 +23 -2
- package/README.md +1 -1
- package/dist/index.css +296 -8
- package/package.json +17 -2
- package/scss/index.scss +63 -8
package/DESIGN.md
CHANGED
|
@@ -248,11 +248,32 @@ from the custom properties, so the card works in both modes.
|
|
|
248
248
|
is almost invisible on the dark ground, the border keeps the edge in dark mode.
|
|
249
249
|
|
|
250
250
|
## Alert
|
|
251
|
-
From [components-alert](components/components-alert): `Alert` in `info`, `success`, `warning` and `error`. A `--c-
|
|
251
|
+
From [components-alert](components/components-alert): `Alert` in `info`, `success`, `warning` and `error`. A box **tinted with the variant color** (12% of `--c-info`, `--c-success`, `--c-warning` or `--c-error` mixed over `--c-background` with `color-mix`, so it follows the mode) with a 1px border at 35% of the same color
|
|
252
252
|
and a **4px accent on the left edge** in the variant color (`--c-info`, `--c-success`, `--c-warning`, `--c-error`); the icon, when given, has the same color.
|
|
253
|
-
The text and the title are `--c-text
|
|
253
|
+
The text and the title are `--c-text`, 14.8:1 or more on every tint in both modes; the accent and the icon are at least 3.8:1 on the tint (the status colors are not used for text: see the contrast notes in [Dark mode](#dark-mode)). The title is bold, the text
|
|
254
254
|
0.875rem, square corners. The dismiss button is a plain "x" in `--c-muted`, `--c-text` on hover, with the usual focus ring.
|
|
255
255
|
|
|
256
|
+
## Spinner
|
|
257
|
+
From [components-spinner](components/components-spinner): `Spinner` in three sizes (`sm` 1rem, `md` 1.5rem, `lg` 2.5rem). A 2px ring in `--c-surface-active` with a
|
|
258
|
+
`--c-primary` arc (black in light, white in dark), one turn every 0.75s, drawn with CSS only. The label is visually hidden text. With
|
|
259
|
+
`prefers-reduced-motion` the turn is replaced by a slow opacity pulse (2s) of the whole ring in `--c-primary`. The arc is 21:1 (light) and
|
|
260
|
+
19.8:1 (dark) on the page background and 16.7:1 and 15.1:1 on its track, far above the 3:1 needed for a graphic; the track is a faint guide (1.3:1) on purpose.
|
|
261
|
+
|
|
262
|
+
## Modal
|
|
263
|
+
From [components-modal](components/components-modal): `Modal`, a native `<dialog>` in three widths (`sm` 24rem, `md` 32rem, `lg` 48rem, never wider than the viewport
|
|
264
|
+
minus 1rem). The box is `--c-background` with `--c-text`, a **1px `--c-muted` border**, `$radius` (square) and a layered shadow (`0 4px 8px` at 8% and `0 16px 48px` at 20% of
|
|
265
|
+
black). As with the elevated Card the border stays on purpose: a shadow is almost invisible on the dark ground, the border keeps the edge in dark mode. Padding is
|
|
266
|
+
1.5rem at the sides and 1.25rem above and below, like Card. The title is the Typography `Heading` (level 4 size) and the description the small muted `Text`.
|
|
267
|
+
The close button is a plain "x" in `--c-muted`, `--c-text` on hover, with the usual focus ring. The **backdrop** is `rgb(0 0 0 / 0.5)`, the one literal color of these
|
|
268
|
+
components, and it is the same in both modes (it dims whatever mode the page is in). The box fades in and rises 0.5rem in `$transition-duration`; with reduced motion it
|
|
269
|
+
just appears.
|
|
270
|
+
|
|
271
|
+
## Toast
|
|
272
|
+
From [components-toast](components/components-toast): the fixed region of toasts (24rem wide, 1rem from the edges, 0.75rem between toasts, above the page content) and its six
|
|
273
|
+
placements. The look of each toast is the Alert's (see above), so its colors, roles and contrast are the Alert's in both modes. The action is a bold, underlined
|
|
274
|
+
0.875rem button in `--c-text` (14.8:1 or more on every tint). A toast slides 0.75rem from its edge and fades in over `$transition-duration`; with reduced motion
|
|
275
|
+
only the fade stays. The region is in the page, not in the browser's top layer, so a toast shown while a modal is open sits behind the modal's backdrop.
|
|
276
|
+
|
|
256
277
|
## Keyboard focus (all controls)
|
|
257
278
|
One rule keeps the controls coherent: **an outlined control thickens its own border from 1px to 2px, black** (text fields,
|
|
258
279
|
select, combobox, date picker, textarea, upload, empty checkbox, off switch, radio, secondary and ghost buttons); **a filled
|
package/README.md
CHANGED
|
@@ -142,7 +142,7 @@ 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` and `-
|
|
145
|
+
`-combobox`, `-upload`, `-calendar`, `-date-picker`, `-search`, `-typography`, `-card`, `-alert`, `-spinner`, `-modal` and `-toast`. `components-email`, `-password`, `-url` and `-textarea`
|
|
146
146
|
are styled through the input.
|
|
147
147
|
|
|
148
148
|
## Change a value
|
package/dist/index.css
CHANGED
|
@@ -1449,8 +1449,8 @@
|
|
|
1449
1449
|
|
|
1450
1450
|
.c-alert--info {
|
|
1451
1451
|
color: var(--c-text);
|
|
1452
|
-
background: var(--c-
|
|
1453
|
-
border-color: var(--c-
|
|
1452
|
+
background: color-mix(in srgb, var(--c-info) 12%, var(--c-background));
|
|
1453
|
+
border-color: color-mix(in srgb, var(--c-info) 35%, var(--c-background));
|
|
1454
1454
|
border-left-color: var(--c-info);
|
|
1455
1455
|
}
|
|
1456
1456
|
.c-alert--info .c-alert__icon {
|
|
@@ -1462,8 +1462,8 @@
|
|
|
1462
1462
|
|
|
1463
1463
|
.c-alert--success {
|
|
1464
1464
|
color: var(--c-text);
|
|
1465
|
-
background: var(--c-
|
|
1466
|
-
border-color: var(--c-
|
|
1465
|
+
background: color-mix(in srgb, var(--c-success) 12%, var(--c-background));
|
|
1466
|
+
border-color: color-mix(in srgb, var(--c-success) 35%, var(--c-background));
|
|
1467
1467
|
border-left-color: var(--c-success);
|
|
1468
1468
|
}
|
|
1469
1469
|
.c-alert--success .c-alert__icon {
|
|
@@ -1475,8 +1475,8 @@
|
|
|
1475
1475
|
|
|
1476
1476
|
.c-alert--warning {
|
|
1477
1477
|
color: var(--c-text);
|
|
1478
|
-
background: var(--c-
|
|
1479
|
-
border-color: var(--c-
|
|
1478
|
+
background: color-mix(in srgb, var(--c-warning) 12%, var(--c-background));
|
|
1479
|
+
border-color: color-mix(in srgb, var(--c-warning) 35%, var(--c-background));
|
|
1480
1480
|
border-left-color: var(--c-warning);
|
|
1481
1481
|
}
|
|
1482
1482
|
.c-alert--warning .c-alert__icon {
|
|
@@ -1488,8 +1488,8 @@
|
|
|
1488
1488
|
|
|
1489
1489
|
.c-alert--error {
|
|
1490
1490
|
color: var(--c-text);
|
|
1491
|
-
background: var(--c-
|
|
1492
|
-
border-color: var(--c-
|
|
1491
|
+
background: color-mix(in srgb, var(--c-error) 12%, var(--c-background));
|
|
1492
|
+
border-color: color-mix(in srgb, var(--c-error) 35%, var(--c-background));
|
|
1493
1493
|
border-left-color: var(--c-error);
|
|
1494
1494
|
}
|
|
1495
1495
|
.c-alert--error .c-alert__icon {
|
|
@@ -1498,3 +1498,291 @@
|
|
|
1498
1498
|
.c-alert--error .c-alert__title {
|
|
1499
1499
|
color: var(--c-text);
|
|
1500
1500
|
}
|
|
1501
|
+
|
|
1502
|
+
@keyframes c-spinner-rotate {
|
|
1503
|
+
to {
|
|
1504
|
+
transform: rotate(360deg);
|
|
1505
|
+
}
|
|
1506
|
+
}
|
|
1507
|
+
@keyframes c-spinner-pulse {
|
|
1508
|
+
0%, 100% {
|
|
1509
|
+
opacity: 1;
|
|
1510
|
+
}
|
|
1511
|
+
50% {
|
|
1512
|
+
opacity: 0.35;
|
|
1513
|
+
}
|
|
1514
|
+
}
|
|
1515
|
+
.c-spinner {
|
|
1516
|
+
--c-spinner-size: 1.5rem;
|
|
1517
|
+
box-sizing: border-box;
|
|
1518
|
+
display: inline-block;
|
|
1519
|
+
flex: none;
|
|
1520
|
+
width: var(--c-spinner-size);
|
|
1521
|
+
height: var(--c-spinner-size);
|
|
1522
|
+
vertical-align: middle;
|
|
1523
|
+
border: 2px solid var(--c-surface-active);
|
|
1524
|
+
border-top-color: var(--c-primary);
|
|
1525
|
+
border-radius: 50%;
|
|
1526
|
+
animation: c-spinner-rotate 0.75s linear infinite;
|
|
1527
|
+
}
|
|
1528
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1529
|
+
.c-spinner {
|
|
1530
|
+
border-color: var(--c-primary);
|
|
1531
|
+
animation: c-spinner-pulse 2s ease-in-out infinite;
|
|
1532
|
+
}
|
|
1533
|
+
}
|
|
1534
|
+
|
|
1535
|
+
.c-spinner--sm {
|
|
1536
|
+
--c-spinner-size: 1rem;
|
|
1537
|
+
}
|
|
1538
|
+
|
|
1539
|
+
.c-spinner--md {
|
|
1540
|
+
--c-spinner-size: 1.5rem;
|
|
1541
|
+
}
|
|
1542
|
+
|
|
1543
|
+
.c-spinner--lg {
|
|
1544
|
+
--c-spinner-size: 2.5rem;
|
|
1545
|
+
}
|
|
1546
|
+
|
|
1547
|
+
.c-spinner__label {
|
|
1548
|
+
position: absolute;
|
|
1549
|
+
width: 1px;
|
|
1550
|
+
height: 1px;
|
|
1551
|
+
padding: 0;
|
|
1552
|
+
margin: -1px;
|
|
1553
|
+
overflow: hidden;
|
|
1554
|
+
white-space: nowrap;
|
|
1555
|
+
border: 0;
|
|
1556
|
+
clip-path: inset(50%);
|
|
1557
|
+
}
|
|
1558
|
+
|
|
1559
|
+
.c-modal-lock {
|
|
1560
|
+
overflow: hidden;
|
|
1561
|
+
}
|
|
1562
|
+
|
|
1563
|
+
.c-modal {
|
|
1564
|
+
box-sizing: border-box;
|
|
1565
|
+
width: 32rem;
|
|
1566
|
+
max-width: calc(100vw - 2 * 1rem);
|
|
1567
|
+
max-height: calc(100dvh - 2rem);
|
|
1568
|
+
padding: 0;
|
|
1569
|
+
color: var(--c-text);
|
|
1570
|
+
background: var(--c-background);
|
|
1571
|
+
border: 1px solid var(--c-muted);
|
|
1572
|
+
border-radius: 0;
|
|
1573
|
+
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.08), 0 16px 48px rgba(0, 0, 0, 0.2);
|
|
1574
|
+
opacity: 0;
|
|
1575
|
+
transition: opacity 0.2s ease-out, transform 0.2s ease-out, overlay 0.2s allow-discrete, display 0.2s allow-discrete;
|
|
1576
|
+
transform: translateY(0.5rem);
|
|
1577
|
+
}
|
|
1578
|
+
.c-modal[open] {
|
|
1579
|
+
display: flex;
|
|
1580
|
+
flex-direction: column;
|
|
1581
|
+
opacity: 1;
|
|
1582
|
+
transform: none;
|
|
1583
|
+
}
|
|
1584
|
+
@starting-style {
|
|
1585
|
+
.c-modal[open] {
|
|
1586
|
+
opacity: 0;
|
|
1587
|
+
transform: translateY(0.5rem);
|
|
1588
|
+
}
|
|
1589
|
+
}
|
|
1590
|
+
.c-modal::backdrop {
|
|
1591
|
+
background: rgba(0, 0, 0, 0.5);
|
|
1592
|
+
opacity: 0;
|
|
1593
|
+
transition: opacity 0.2s ease-out, overlay 0.2s allow-discrete, display 0.2s allow-discrete;
|
|
1594
|
+
}
|
|
1595
|
+
.c-modal[open]::backdrop {
|
|
1596
|
+
opacity: 1;
|
|
1597
|
+
}
|
|
1598
|
+
@starting-style {
|
|
1599
|
+
.c-modal[open]::backdrop {
|
|
1600
|
+
opacity: 0;
|
|
1601
|
+
}
|
|
1602
|
+
}
|
|
1603
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1604
|
+
.c-modal {
|
|
1605
|
+
transform: none;
|
|
1606
|
+
transition: none;
|
|
1607
|
+
}
|
|
1608
|
+
@starting-style {
|
|
1609
|
+
.c-modal[open] {
|
|
1610
|
+
transform: none;
|
|
1611
|
+
}
|
|
1612
|
+
}
|
|
1613
|
+
.c-modal::backdrop {
|
|
1614
|
+
transition: none;
|
|
1615
|
+
}
|
|
1616
|
+
}
|
|
1617
|
+
|
|
1618
|
+
.c-modal--sm {
|
|
1619
|
+
width: 24rem;
|
|
1620
|
+
}
|
|
1621
|
+
|
|
1622
|
+
.c-modal--md {
|
|
1623
|
+
width: 32rem;
|
|
1624
|
+
}
|
|
1625
|
+
|
|
1626
|
+
.c-modal--lg {
|
|
1627
|
+
width: 48rem;
|
|
1628
|
+
}
|
|
1629
|
+
|
|
1630
|
+
.c-modal__header {
|
|
1631
|
+
display: flex;
|
|
1632
|
+
flex: none;
|
|
1633
|
+
gap: 1rem;
|
|
1634
|
+
align-items: flex-start;
|
|
1635
|
+
justify-content: space-between;
|
|
1636
|
+
padding: 1.25rem 1.5rem 0;
|
|
1637
|
+
}
|
|
1638
|
+
|
|
1639
|
+
.c-modal__heading {
|
|
1640
|
+
flex: 1 1 auto;
|
|
1641
|
+
min-width: 0;
|
|
1642
|
+
}
|
|
1643
|
+
|
|
1644
|
+
.c-modal__title {
|
|
1645
|
+
margin: 0;
|
|
1646
|
+
}
|
|
1647
|
+
|
|
1648
|
+
.c-modal__description {
|
|
1649
|
+
margin: 0.25rem 0 0;
|
|
1650
|
+
}
|
|
1651
|
+
|
|
1652
|
+
.c-modal__close {
|
|
1653
|
+
display: inline-flex;
|
|
1654
|
+
flex: none;
|
|
1655
|
+
align-items: center;
|
|
1656
|
+
justify-content: center;
|
|
1657
|
+
padding: 0;
|
|
1658
|
+
margin-left: auto;
|
|
1659
|
+
font-size: 1.25rem;
|
|
1660
|
+
line-height: 1;
|
|
1661
|
+
color: var(--c-muted);
|
|
1662
|
+
cursor: pointer;
|
|
1663
|
+
background: none;
|
|
1664
|
+
border: 0;
|
|
1665
|
+
}
|
|
1666
|
+
.c-modal__close:hover {
|
|
1667
|
+
color: var(--c-text);
|
|
1668
|
+
}
|
|
1669
|
+
.c-modal__close:focus-visible {
|
|
1670
|
+
outline: 2px solid currentColor;
|
|
1671
|
+
outline-offset: 2px;
|
|
1672
|
+
}
|
|
1673
|
+
|
|
1674
|
+
.c-modal__body {
|
|
1675
|
+
flex: 1 1 auto;
|
|
1676
|
+
min-height: 0;
|
|
1677
|
+
padding: 1.25rem 1.5rem;
|
|
1678
|
+
overflow-y: auto;
|
|
1679
|
+
}
|
|
1680
|
+
|
|
1681
|
+
.c-modal__footer {
|
|
1682
|
+
display: flex;
|
|
1683
|
+
flex: none;
|
|
1684
|
+
flex-wrap: wrap;
|
|
1685
|
+
gap: 1rem;
|
|
1686
|
+
justify-content: flex-end;
|
|
1687
|
+
padding: 0 1.5rem 1.25rem;
|
|
1688
|
+
}
|
|
1689
|
+
|
|
1690
|
+
@keyframes c-toast-enter {
|
|
1691
|
+
from {
|
|
1692
|
+
opacity: 0;
|
|
1693
|
+
transform: translateY(var(--c-toast-enter-shift));
|
|
1694
|
+
}
|
|
1695
|
+
to {
|
|
1696
|
+
opacity: 1;
|
|
1697
|
+
transform: none;
|
|
1698
|
+
}
|
|
1699
|
+
}
|
|
1700
|
+
@keyframes c-toast-fade {
|
|
1701
|
+
from {
|
|
1702
|
+
opacity: 0;
|
|
1703
|
+
}
|
|
1704
|
+
to {
|
|
1705
|
+
opacity: 1;
|
|
1706
|
+
}
|
|
1707
|
+
}
|
|
1708
|
+
.c-toast-region {
|
|
1709
|
+
position: fixed;
|
|
1710
|
+
z-index: 1100;
|
|
1711
|
+
display: flex;
|
|
1712
|
+
flex-direction: column;
|
|
1713
|
+
width: 24rem;
|
|
1714
|
+
max-width: calc(100vw - 2 * 1rem);
|
|
1715
|
+
pointer-events: none;
|
|
1716
|
+
}
|
|
1717
|
+
|
|
1718
|
+
.c-toast-region--top-left,
|
|
1719
|
+
.c-toast-region--top-center,
|
|
1720
|
+
.c-toast-region--top-right {
|
|
1721
|
+
top: 1rem;
|
|
1722
|
+
}
|
|
1723
|
+
|
|
1724
|
+
.c-toast-region--bottom-left,
|
|
1725
|
+
.c-toast-region--bottom-center,
|
|
1726
|
+
.c-toast-region--bottom-right {
|
|
1727
|
+
bottom: 1rem;
|
|
1728
|
+
}
|
|
1729
|
+
|
|
1730
|
+
.c-toast-region--top-left,
|
|
1731
|
+
.c-toast-region--bottom-left {
|
|
1732
|
+
left: 1rem;
|
|
1733
|
+
}
|
|
1734
|
+
|
|
1735
|
+
.c-toast-region--top-right,
|
|
1736
|
+
.c-toast-region--bottom-right {
|
|
1737
|
+
right: 1rem;
|
|
1738
|
+
}
|
|
1739
|
+
|
|
1740
|
+
.c-toast-region--top-center,
|
|
1741
|
+
.c-toast-region--bottom-center {
|
|
1742
|
+
left: 50%;
|
|
1743
|
+
transform: translateX(-50%);
|
|
1744
|
+
}
|
|
1745
|
+
|
|
1746
|
+
.c-toast-list {
|
|
1747
|
+
display: flex;
|
|
1748
|
+
flex-direction: column;
|
|
1749
|
+
gap: 0.75rem;
|
|
1750
|
+
padding: 0;
|
|
1751
|
+
margin: 0;
|
|
1752
|
+
list-style: none;
|
|
1753
|
+
}
|
|
1754
|
+
|
|
1755
|
+
.c-toast {
|
|
1756
|
+
--c-toast-enter-shift: 0.75rem;
|
|
1757
|
+
pointer-events: auto;
|
|
1758
|
+
animation: c-toast-enter 0.2s ease-out;
|
|
1759
|
+
}
|
|
1760
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1761
|
+
.c-toast {
|
|
1762
|
+
animation-name: c-toast-fade;
|
|
1763
|
+
}
|
|
1764
|
+
}
|
|
1765
|
+
|
|
1766
|
+
.c-toast-region--top-left .c-toast,
|
|
1767
|
+
.c-toast-region--top-center .c-toast,
|
|
1768
|
+
.c-toast-region--top-right .c-toast {
|
|
1769
|
+
--c-toast-enter-shift: -0.75rem;
|
|
1770
|
+
}
|
|
1771
|
+
|
|
1772
|
+
.c-toast__action {
|
|
1773
|
+
display: block;
|
|
1774
|
+
padding: 0;
|
|
1775
|
+
margin-top: 0.5rem;
|
|
1776
|
+
font: inherit;
|
|
1777
|
+
font-size: 0.875rem;
|
|
1778
|
+
font-weight: 700;
|
|
1779
|
+
color: var(--c-text);
|
|
1780
|
+
text-decoration: underline;
|
|
1781
|
+
cursor: pointer;
|
|
1782
|
+
background: none;
|
|
1783
|
+
border: 0;
|
|
1784
|
+
}
|
|
1785
|
+
.c-toast__action:focus-visible {
|
|
1786
|
+
outline: 2px solid currentColor;
|
|
1787
|
+
outline-offset: 2px;
|
|
1788
|
+
}
|
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.4",
|
|
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",
|
|
@@ -54,7 +54,10 @@
|
|
|
54
54
|
"@carissa-io/components-search": "^0.1.1",
|
|
55
55
|
"@carissa-io/components-typography": "^0.1.0",
|
|
56
56
|
"@carissa-io/components-card": "^0.1.0",
|
|
57
|
-
"@carissa-io/components-alert": "^0.1.0"
|
|
57
|
+
"@carissa-io/components-alert": "^0.1.0",
|
|
58
|
+
"@carissa-io/components-spinner": "^0.1.0",
|
|
59
|
+
"@carissa-io/components-modal": "^0.1.0",
|
|
60
|
+
"@carissa-io/components-toast": "^0.1.0"
|
|
58
61
|
},
|
|
59
62
|
"peerDependenciesMeta": {
|
|
60
63
|
"@carissa-io/components-input": {
|
|
@@ -119,6 +122,15 @@
|
|
|
119
122
|
},
|
|
120
123
|
"@carissa-io/components-alert": {
|
|
121
124
|
"optional": true
|
|
125
|
+
},
|
|
126
|
+
"@carissa-io/components-spinner": {
|
|
127
|
+
"optional": true
|
|
128
|
+
},
|
|
129
|
+
"@carissa-io/components-modal": {
|
|
130
|
+
"optional": true
|
|
131
|
+
},
|
|
132
|
+
"@carissa-io/components-toast": {
|
|
133
|
+
"optional": true
|
|
122
134
|
}
|
|
123
135
|
},
|
|
124
136
|
"devDependencies": {
|
|
@@ -131,12 +143,15 @@
|
|
|
131
143
|
"@carissa-io/components-date-picker": "^0.1.1",
|
|
132
144
|
"@carissa-io/components-input": "^0.2.1",
|
|
133
145
|
"@carissa-io/components-listbox": "^0.1.1",
|
|
146
|
+
"@carissa-io/components-modal": "^0.1.0",
|
|
134
147
|
"@carissa-io/components-popover": "^0.1.1",
|
|
135
148
|
"@carissa-io/components-radio-group": "^0.1.1",
|
|
136
149
|
"@carissa-io/components-search": "^0.1.1",
|
|
137
150
|
"@carissa-io/components-select": "^0.1.1",
|
|
138
151
|
"@carissa-io/components-slider": "^0.1.1",
|
|
152
|
+
"@carissa-io/components-spinner": "^0.1.0",
|
|
139
153
|
"@carissa-io/components-switch": "^0.1.1",
|
|
154
|
+
"@carissa-io/components-toast": "^0.1.0",
|
|
140
155
|
"@carissa-io/components-typography": "^0.1.0",
|
|
141
156
|
"@carissa-io/components-upload": "^0.1.1",
|
|
142
157
|
"sass-embedded": "^1.105.1",
|
package/scss/index.scss
CHANGED
|
@@ -599,34 +599,89 @@
|
|
|
599
599
|
$c-alert-dismiss-color-hover: $var-text,
|
|
600
600
|
|
|
601
601
|
// Info
|
|
602
|
-
$c-alert-info-background: $var-
|
|
603
|
-
$c-alert-info-border-color: $var-
|
|
602
|
+
$c-alert-info-background: color-mix(in srgb, $var-info 12%, $var-background),
|
|
603
|
+
$c-alert-info-border-color: color-mix(in srgb, $var-info 35%, $var-background),
|
|
604
604
|
$c-alert-info-accent-color: $var-info,
|
|
605
605
|
$c-alert-info-color: $var-text,
|
|
606
606
|
$c-alert-info-icon-color: $var-info,
|
|
607
607
|
$c-alert-info-title-color: $var-text,
|
|
608
608
|
|
|
609
609
|
// Success
|
|
610
|
-
$c-alert-success-background: $var-
|
|
611
|
-
$c-alert-success-border-color: $var-
|
|
610
|
+
$c-alert-success-background: color-mix(in srgb, $var-success 12%, $var-background),
|
|
611
|
+
$c-alert-success-border-color: color-mix(in srgb, $var-success 35%, $var-background),
|
|
612
612
|
$c-alert-success-accent-color: $var-success,
|
|
613
613
|
$c-alert-success-color: $var-text,
|
|
614
614
|
$c-alert-success-icon-color: $var-success,
|
|
615
615
|
$c-alert-success-title-color: $var-text,
|
|
616
616
|
|
|
617
617
|
// Warning
|
|
618
|
-
$c-alert-warning-background: $var-
|
|
619
|
-
$c-alert-warning-border-color: $var-
|
|
618
|
+
$c-alert-warning-background: color-mix(in srgb, $var-warning 12%, $var-background),
|
|
619
|
+
$c-alert-warning-border-color: color-mix(in srgb, $var-warning 35%, $var-background),
|
|
620
620
|
$c-alert-warning-accent-color: $var-warning,
|
|
621
621
|
$c-alert-warning-color: $var-text,
|
|
622
622
|
$c-alert-warning-icon-color: $var-warning,
|
|
623
623
|
$c-alert-warning-title-color: $var-text,
|
|
624
624
|
|
|
625
625
|
// Error
|
|
626
|
-
$c-alert-error-background: $var-
|
|
627
|
-
$c-alert-error-border-color: $var-
|
|
626
|
+
$c-alert-error-background: color-mix(in srgb, $var-error 12%, $var-background),
|
|
627
|
+
$c-alert-error-border-color: color-mix(in srgb, $var-error 35%, $var-background),
|
|
628
628
|
$c-alert-error-accent-color: $var-error,
|
|
629
629
|
$c-alert-error-color: $var-text,
|
|
630
630
|
$c-alert-error-icon-color: $var-error,
|
|
631
631
|
$c-alert-error-title-color: $var-text
|
|
632
632
|
);
|
|
633
|
+
|
|
634
|
+
// Spinner: a thin ring in the surface-active gray with a primary arc (black in light, white in dark), turning at 0.75s per
|
|
635
|
+
// turn; with reduced motion the package swaps the turn for a slow pulse. Colors only through the custom properties.
|
|
636
|
+
@use '@carissa-io/components-spinner/scss' as spinner with (
|
|
637
|
+
$c-spinner-size-sm: 1rem,
|
|
638
|
+
$c-spinner-size-md: 1.5rem,
|
|
639
|
+
$c-spinner-size-lg: 2.5rem,
|
|
640
|
+
$c-spinner-thickness: 2px,
|
|
641
|
+
$c-spinner-color: $var-primary,
|
|
642
|
+
$c-spinner-track-color: $var-surface-active,
|
|
643
|
+
$c-spinner-duration: 0.75s,
|
|
644
|
+
$c-spinner-duration-reduced: 2s
|
|
645
|
+
);
|
|
646
|
+
|
|
647
|
+
// Modal: a box on the page background with a 1px muted border (the edge that still reads in dark, where a shadow is almost
|
|
648
|
+
// invisible), the theme radius, and the same 1.5rem / 1.25rem padding as Card. The backdrop is the one literal color: black
|
|
649
|
+
// at 50%, the same in both modes. Its index forwards the typography styles, already loaded and configured above, so this
|
|
650
|
+
// block goes after the Typography one (and after Card, which forwards it too).
|
|
651
|
+
@use '@carissa-io/components-modal/scss' as modal with (
|
|
652
|
+
$c-modal-background: $var-background,
|
|
653
|
+
$c-modal-color: $var-text,
|
|
654
|
+
$c-modal-border-width: 1px,
|
|
655
|
+
$c-modal-border-color: $var-muted,
|
|
656
|
+
$c-modal-radius: $radius,
|
|
657
|
+
$c-modal-shadow: (0 4px 8px rgb(0 0 0 / 0.08), 0 16px 48px rgb(0 0 0 / 0.2)),
|
|
658
|
+
$c-modal-padding-x: 1.5rem,
|
|
659
|
+
$c-modal-padding-y: 1.25rem,
|
|
660
|
+
$c-modal-gap: 1rem,
|
|
661
|
+
$c-modal-margin: 1rem,
|
|
662
|
+
$c-modal-width-sm: 24rem,
|
|
663
|
+
$c-modal-width-md: 32rem,
|
|
664
|
+
$c-modal-width-lg: 48rem,
|
|
665
|
+
$c-modal-close-size: 1.25rem,
|
|
666
|
+
$c-modal-close-color: $var-muted,
|
|
667
|
+
$c-modal-close-color-hover: $var-text,
|
|
668
|
+
$c-modal-backdrop-color: rgb(0 0 0 / 0.5),
|
|
669
|
+
$c-modal-transition-duration: $transition-duration,
|
|
670
|
+
$c-modal-enter-offset: 0.5rem
|
|
671
|
+
);
|
|
672
|
+
|
|
673
|
+
// Toast: the region and its placement only; the look of each toast is the Alert's (configured above). Its index forwards the
|
|
674
|
+
// alert styles, already loaded and configured by the Alert block, so this block goes after it. The action is a bold
|
|
675
|
+
// underlined 0.875rem button in the text color.
|
|
676
|
+
@use '@carissa-io/components-toast/scss' as toast with (
|
|
677
|
+
$c-toast-region-offset: 1rem,
|
|
678
|
+
$c-toast-region-z-index: 1100,
|
|
679
|
+
$c-toast-gap: 0.75rem,
|
|
680
|
+
$c-toast-width: 24rem,
|
|
681
|
+
$c-toast-action-margin-top: 0.5rem,
|
|
682
|
+
$c-toast-action-font-size: $font-size-small,
|
|
683
|
+
$c-toast-action-font-weight: $font-weight-bold,
|
|
684
|
+
$c-toast-action-color: $var-text,
|
|
685
|
+
$c-toast-enter-duration: $transition-duration,
|
|
686
|
+
$c-toast-enter-distance: 0.75rem
|
|
687
|
+
);
|