@khipu/design-system 0.1.0-alpha.37 → 0.1.0-alpha.39
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/dist/beercss/khipu-beercss.css +411 -46
- package/dist/beercss/khipu-beercss.min.css +1 -1
- package/dist/beercss/metadata.json +4 -4
- package/dist/index.d.mts +471 -411
- package/dist/index.d.ts +471 -411
- package/dist/index.js +48 -26
- package/dist/index.mjs +48 -26
- package/package.json +1 -1
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* AUTO-GENERATED FILE - DO NOT EDIT MANUALLY
|
|
13
13
|
* Source: design-system/src/tokens/tokens.json
|
|
14
|
-
* Generated: 2026-04-
|
|
14
|
+
* Generated: 2026-04-15T16:04:48.243Z
|
|
15
15
|
*
|
|
16
16
|
* To regenerate:
|
|
17
17
|
* cd design-system && npm run tokens:generate
|
|
@@ -27,14 +27,14 @@
|
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
/* Primary palette - Khipu brand */
|
|
30
|
-
--kds-color-primary-main: #
|
|
31
|
-
--kds-color-primary-light: #
|
|
32
|
-
--kds-color-primary-dark: #
|
|
30
|
+
--kds-color-primary-main: #8347AD;
|
|
31
|
+
--kds-color-primary-light: #9B6BBD;
|
|
32
|
+
--kds-color-primary-dark: #5B3179;
|
|
33
33
|
--kds-color-primary-contrast: #FFFFFF;
|
|
34
|
-
--kds-color-primary-hover: rgba(
|
|
35
|
-
--kds-color-primary-selected: rgba(
|
|
36
|
-
--kds-color-primary-focus: rgba(
|
|
37
|
-
--kds-color-primary-focus-visible: rgba(
|
|
34
|
+
--kds-color-primary-hover: rgba(131, 71, 173, 0.04);
|
|
35
|
+
--kds-color-primary-selected: rgba(131, 71, 173, 0.08);
|
|
36
|
+
--kds-color-primary-focus: rgba(131, 71, 173, 0.12);
|
|
37
|
+
--kds-color-primary-focus-visible: rgba(131, 71, 173, 0.30);
|
|
38
38
|
|
|
39
39
|
/* Secondary palette */
|
|
40
40
|
--kds-color-secondary-main: #4CAF50;
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
--kds-color-text-hint: rgba(0, 0, 0, 0.38);
|
|
64
64
|
|
|
65
65
|
/* Background colors */
|
|
66
|
-
--kds-color-background-default: #
|
|
66
|
+
--kds-color-background-default: #FFFFFF;
|
|
67
67
|
--kds-color-background-paper: #FFFFFF;
|
|
68
68
|
--kds-color-background-elevated: #FAFAFA;
|
|
69
69
|
|
|
@@ -105,6 +105,14 @@
|
|
|
105
105
|
--kds-alert-warning-bg: #FFFBEB;
|
|
106
106
|
--kds-alert-success-bg: #ECFDF5;
|
|
107
107
|
--kds-alert-error-bg: #FEF2F2;
|
|
108
|
+
--kds-alert-success-text: #1E4620;
|
|
109
|
+
--kds-alert-warning-text: #663C00;
|
|
110
|
+
--kds-alert-error-text: #5F2120;
|
|
111
|
+
--kds-alert-info-text: #014361;
|
|
112
|
+
--kds-alert-success-border: #2CA24D;
|
|
113
|
+
--kds-alert-warning-border: #FF9800;
|
|
114
|
+
--kds-alert-error-border: #E53E3E;
|
|
115
|
+
--kds-alert-info-border: #006699;
|
|
108
116
|
|
|
109
117
|
/* ==========================================================================
|
|
110
118
|
TYPOGRAPHY TOKENS
|
|
@@ -249,7 +257,7 @@
|
|
|
249
257
|
|
|
250
258
|
|
|
251
259
|
/* Border colors */
|
|
252
|
-
--kds-border-light: #
|
|
260
|
+
--kds-border-light: #DDDEE0;
|
|
253
261
|
--kds-border-medium: #999999;
|
|
254
262
|
--kds-border-dark: #666666;
|
|
255
263
|
|
|
@@ -605,6 +613,13 @@ body.dark {
|
|
|
605
613
|
--kds-scroll-sm-height: 280px;
|
|
606
614
|
--kds-scroll-md-height: 420px;
|
|
607
615
|
--kds-scroll-lg-height: 600px;
|
|
616
|
+
|
|
617
|
+
/* Stage Layout */
|
|
618
|
+
--kds-stage-narrow-max-width: 420px;
|
|
619
|
+
--kds-navbar-height: 64px;
|
|
620
|
+
|
|
621
|
+
/* Snackbar */
|
|
622
|
+
--kds-snackbar-max-width: 560px;
|
|
608
623
|
}
|
|
609
624
|
|
|
610
625
|
/* ========================================
|
|
@@ -909,6 +924,12 @@ a.kds-btn.kds-btn-md {
|
|
|
909
924
|
|
|
910
925
|
/* Default .kds-btn uses --kds-spacing-button-min-height (50px) from base styles */
|
|
911
926
|
|
|
927
|
+
/* Full-width button */
|
|
928
|
+
button.kds-btn.kds-btn-block,
|
|
929
|
+
a.kds-btn.kds-btn-block {
|
|
930
|
+
width: 100%;
|
|
931
|
+
}
|
|
932
|
+
|
|
912
933
|
/* ========================================
|
|
913
934
|
Card Components (Material Design 3)
|
|
914
935
|
======================================== */
|
|
@@ -1379,13 +1400,17 @@ a.kds-btn.kds-btn-md {
|
|
|
1379
1400
|
.kds-m-8 { margin: var(--kds-spacing-8); }
|
|
1380
1401
|
|
|
1381
1402
|
.kds-mt-0 { margin-top: 0; }
|
|
1403
|
+
.kds-mt-1 { margin-top: var(--kds-spacing-1); }
|
|
1382
1404
|
.kds-mt-2 { margin-top: var(--kds-spacing-2); }
|
|
1405
|
+
.kds-mt-3 { margin-top: var(--kds-spacing-3); }
|
|
1383
1406
|
.kds-mt-4 { margin-top: var(--kds-spacing-4); }
|
|
1384
1407
|
.kds-mt-6 { margin-top: var(--kds-spacing-6); }
|
|
1385
1408
|
.kds-mt-8 { margin-top: var(--kds-spacing-8); }
|
|
1386
1409
|
|
|
1387
1410
|
.kds-mb-0 { margin-bottom: 0; }
|
|
1411
|
+
.kds-mb-1 { margin-bottom: var(--kds-spacing-1); }
|
|
1388
1412
|
.kds-mb-2 { margin-bottom: var(--kds-spacing-2); }
|
|
1413
|
+
.kds-mb-3 { margin-bottom: var(--kds-spacing-3); }
|
|
1389
1414
|
.kds-mb-4 { margin-bottom: var(--kds-spacing-4); }
|
|
1390
1415
|
.kds-mb-6 { margin-bottom: var(--kds-spacing-6); }
|
|
1391
1416
|
.kds-mb-8 { margin-bottom: var(--kds-spacing-8); }
|
|
@@ -1407,7 +1432,7 @@ a.kds-btn.kds-btn-md {
|
|
|
1407
1432
|
.kds-mx-auto { margin-left: auto; margin-right: auto; }
|
|
1408
1433
|
|
|
1409
1434
|
/* Spacing utilities - Padding */
|
|
1410
|
-
.kds-p-0 { padding: 0; }
|
|
1435
|
+
.kds-p-0 { padding: 0 !important; }
|
|
1411
1436
|
.kds-p-2 { padding: var(--kds-spacing-2); }
|
|
1412
1437
|
.kds-p-4 { padding: var(--kds-spacing-4); }
|
|
1413
1438
|
.kds-p-6 { padding: var(--kds-spacing-6); }
|
|
@@ -1597,13 +1622,48 @@ a.kds-btn.kds-btn-md {
|
|
|
1597
1622
|
|
|
1598
1623
|
.snackbar {
|
|
1599
1624
|
position: fixed;
|
|
1600
|
-
bottom:
|
|
1625
|
+
bottom: var(--kds-spacing-3);
|
|
1601
1626
|
left: 50%;
|
|
1602
1627
|
transform: translateX(-50%);
|
|
1603
|
-
z-index:
|
|
1628
|
+
z-index: var(--kds-z-index-snackbar);
|
|
1604
1629
|
min-width: 344px;
|
|
1605
|
-
max-width:
|
|
1606
|
-
box-shadow:
|
|
1630
|
+
max-width: var(--kds-snackbar-max-width);
|
|
1631
|
+
box-shadow: var(--kds-shadow-8);
|
|
1632
|
+
}
|
|
1633
|
+
|
|
1634
|
+
/* Snackbar active state - ensure visibility when toggled via JS */
|
|
1635
|
+
.snackbar.active {
|
|
1636
|
+
visibility: visible !important;
|
|
1637
|
+
opacity: 1 !important;
|
|
1638
|
+
transform: translateX(-50%) !important;
|
|
1639
|
+
}
|
|
1640
|
+
|
|
1641
|
+
/* Snackbar semantic variants - background + text/icon color */
|
|
1642
|
+
.snackbar.error {
|
|
1643
|
+
background-color: var(--kds-color-error-main) !important;
|
|
1644
|
+
color: var(--on-error, var(--kds-color-primary-contrast)) !important;
|
|
1645
|
+
}
|
|
1646
|
+
|
|
1647
|
+
.snackbar.error i {
|
|
1648
|
+
color: var(--on-error, var(--kds-color-primary-contrast)) !important;
|
|
1649
|
+
}
|
|
1650
|
+
|
|
1651
|
+
.snackbar.info {
|
|
1652
|
+
background-color: var(--kds-color-info-main) !important;
|
|
1653
|
+
color: var(--on-info, var(--kds-color-primary-contrast)) !important;
|
|
1654
|
+
}
|
|
1655
|
+
|
|
1656
|
+
.snackbar.info i {
|
|
1657
|
+
color: var(--on-info, var(--kds-color-primary-contrast)) !important;
|
|
1658
|
+
}
|
|
1659
|
+
|
|
1660
|
+
.snackbar.success {
|
|
1661
|
+
background-color: var(--kds-color-success-main) !important;
|
|
1662
|
+
color: var(--on-success, var(--kds-color-primary-contrast)) !important;
|
|
1663
|
+
}
|
|
1664
|
+
|
|
1665
|
+
.snackbar.success i {
|
|
1666
|
+
color: var(--on-success, var(--kds-color-primary-contrast)) !important;
|
|
1607
1667
|
}
|
|
1608
1668
|
|
|
1609
1669
|
/* ========================================
|
|
@@ -1617,9 +1677,223 @@ nav.primary {
|
|
|
1617
1677
|
z-index: 1000;
|
|
1618
1678
|
}
|
|
1619
1679
|
|
|
1620
|
-
nav.primary a,
|
|
1621
|
-
nav.primary button
|
|
1622
|
-
|
|
1680
|
+
nav.primary > a,
|
|
1681
|
+
nav.primary > button,
|
|
1682
|
+
nav.primary > div > a,
|
|
1683
|
+
nav.primary > div > button {
|
|
1684
|
+
color: var(--on-primary);
|
|
1685
|
+
}
|
|
1686
|
+
|
|
1687
|
+
/* ========================================
|
|
1688
|
+
Locale Switcher (Navbar dropdown)
|
|
1689
|
+
======================================== */
|
|
1690
|
+
|
|
1691
|
+
.kds-locale-switcher {
|
|
1692
|
+
position: relative;
|
|
1693
|
+
display: inline-flex;
|
|
1694
|
+
align-items: center;
|
|
1695
|
+
}
|
|
1696
|
+
|
|
1697
|
+
button.kds-locale-switcher-toggle,
|
|
1698
|
+
.kds-locale-switcher .kds-locale-switcher-toggle {
|
|
1699
|
+
display: inline-flex;
|
|
1700
|
+
align-items: center;
|
|
1701
|
+
gap: var(--kds-spacing-0-75);
|
|
1702
|
+
background: transparent;
|
|
1703
|
+
border: 1px solid var(--kds-color-gray-400);
|
|
1704
|
+
border-radius: var(--kds-radius-button);
|
|
1705
|
+
color: var(--on-primary);
|
|
1706
|
+
padding: var(--kds-spacing-0-5) var(--kds-spacing-1-5);
|
|
1707
|
+
cursor: pointer;
|
|
1708
|
+
font-size: var(--kds-font-size-sm);
|
|
1709
|
+
font-family: var(--kds-font-family-secondary);
|
|
1710
|
+
transition: background var(--kds-transition-shorter) var(--kds-easing-standard),
|
|
1711
|
+
border-color var(--kds-transition-shorter) var(--kds-easing-standard);
|
|
1712
|
+
line-height: var(--kds-line-height-snug);
|
|
1713
|
+
}
|
|
1714
|
+
|
|
1715
|
+
button.kds-locale-switcher-toggle:hover,
|
|
1716
|
+
.kds-locale-switcher .kds-locale-switcher-toggle:hover {
|
|
1717
|
+
background: var(--kds-color-primary-focus);
|
|
1718
|
+
border-color: var(--kds-color-gray-200);
|
|
1719
|
+
}
|
|
1720
|
+
|
|
1721
|
+
.kds-locale-switcher-toggle .kds-locale-flag {
|
|
1722
|
+
font-size: var(--kds-font-size-lg);
|
|
1723
|
+
line-height: 1;
|
|
1724
|
+
}
|
|
1725
|
+
|
|
1726
|
+
.kds-locale-switcher-toggle .kds-locale-arrow {
|
|
1727
|
+
font-size: var(--kds-spacing-button-icon-size);
|
|
1728
|
+
transition: transform var(--kds-transition-shorter) var(--kds-easing-standard);
|
|
1729
|
+
}
|
|
1730
|
+
|
|
1731
|
+
.kds-locale-switcher.active .kds-locale-arrow {
|
|
1732
|
+
transform: rotate(180deg);
|
|
1733
|
+
}
|
|
1734
|
+
|
|
1735
|
+
.kds-locale-switcher-menu {
|
|
1736
|
+
display: none;
|
|
1737
|
+
position: absolute;
|
|
1738
|
+
top: calc(100% + var(--kds-spacing-0-5));
|
|
1739
|
+
right: 0;
|
|
1740
|
+
min-width: 180px;
|
|
1741
|
+
background: var(--kds-color-background-paper);
|
|
1742
|
+
border-radius: var(--kds-radius-md);
|
|
1743
|
+
box-shadow: var(--kds-shadow-dropdown);
|
|
1744
|
+
z-index: var(--kds-z-index-appbar);
|
|
1745
|
+
overflow: hidden;
|
|
1746
|
+
padding: var(--kds-spacing-0-5) 0;
|
|
1747
|
+
}
|
|
1748
|
+
|
|
1749
|
+
.kds-locale-switcher.active .kds-locale-switcher-menu {
|
|
1750
|
+
display: block;
|
|
1751
|
+
}
|
|
1752
|
+
|
|
1753
|
+
.kds-locale-switcher-menu a,
|
|
1754
|
+
.kds-locale-switcher-menu button {
|
|
1755
|
+
display: flex !important;
|
|
1756
|
+
align-items: center;
|
|
1757
|
+
justify-content: flex-start;
|
|
1758
|
+
padding: 0 var(--kds-spacing-3);
|
|
1759
|
+
gap: var(--kds-spacing-2);
|
|
1760
|
+
width: 100%;
|
|
1761
|
+
box-sizing: border-box !important;
|
|
1762
|
+
background: transparent !important;
|
|
1763
|
+
border: none !important;
|
|
1764
|
+
color: var(--kds-color-text-primary) !important;
|
|
1765
|
+
font-size: var(--kds-font-size-sm);
|
|
1766
|
+
font-family: var(--kds-font-family-secondary);
|
|
1767
|
+
cursor: pointer;
|
|
1768
|
+
text-decoration: none;
|
|
1769
|
+
transition: background var(--kds-transition-shortest) var(--kds-easing-standard);
|
|
1770
|
+
text-align: left;
|
|
1771
|
+
border-radius: 0 !important;
|
|
1772
|
+
min-height: auto !important;
|
|
1773
|
+
margin: 0 !important;
|
|
1774
|
+
box-shadow: none !important;
|
|
1775
|
+
position: relative;
|
|
1776
|
+
}
|
|
1777
|
+
|
|
1778
|
+
/* Kill BeerCSS pseudo-elements on active buttons */
|
|
1779
|
+
.kds-locale-switcher-menu button::before,
|
|
1780
|
+
.kds-locale-switcher-menu button::after,
|
|
1781
|
+
.kds-locale-switcher-menu a::before,
|
|
1782
|
+
.kds-locale-switcher-menu a::after {
|
|
1783
|
+
display: none !important;
|
|
1784
|
+
}
|
|
1785
|
+
|
|
1786
|
+
.kds-locale-switcher-menu a:hover,
|
|
1787
|
+
.kds-locale-switcher-menu button:hover {
|
|
1788
|
+
background: var(--kds-color-background-elevated) !important;
|
|
1789
|
+
}
|
|
1790
|
+
|
|
1791
|
+
.kds-locale-switcher-menu .kds-locale-flag {
|
|
1792
|
+
font-size: var(--kds-font-size-base);
|
|
1793
|
+
line-height: 1;
|
|
1794
|
+
flex-shrink: 0;
|
|
1795
|
+
}
|
|
1796
|
+
|
|
1797
|
+
.kds-locale-switcher-menu button.active,
|
|
1798
|
+
.kds-locale-switcher-menu a.active {
|
|
1799
|
+
background: var(--kds-color-primary-selected) !important;
|
|
1800
|
+
font-weight: var(--kds-font-weight-medium);
|
|
1801
|
+
}
|
|
1802
|
+
|
|
1803
|
+
/* ========================================
|
|
1804
|
+
Google Sign-In Button
|
|
1805
|
+
Per Google Identity branding guidelines:
|
|
1806
|
+
https://developers.google.com/identity/branding-guidelines
|
|
1807
|
+
======================================== */
|
|
1808
|
+
|
|
1809
|
+
button.kds-btn-google,
|
|
1810
|
+
a.kds-btn-google {
|
|
1811
|
+
display: inline-flex;
|
|
1812
|
+
align-items: center;
|
|
1813
|
+
justify-content: center;
|
|
1814
|
+
gap: var(--kds-spacing-1-5);
|
|
1815
|
+
width: 100%;
|
|
1816
|
+
background: var(--kds-color-background-paper);
|
|
1817
|
+
color: #1F1F1F;
|
|
1818
|
+
border: 1px solid #747775;
|
|
1819
|
+
border-radius: var(--kds-radius-button);
|
|
1820
|
+
padding: var(--kds-spacing-1) var(--kds-spacing-1-5);
|
|
1821
|
+
min-height: var(--kds-spacing-button-min-height);
|
|
1822
|
+
font-family: "Roboto", var(--kds-font-family-secondary);
|
|
1823
|
+
font-weight: var(--kds-font-weight-medium);
|
|
1824
|
+
font-size: var(--kds-font-size-sm);
|
|
1825
|
+
line-height: var(--kds-line-height-normal);
|
|
1826
|
+
letter-spacing: var(--kds-letter-spacing-normal);
|
|
1827
|
+
text-transform: none;
|
|
1828
|
+
cursor: pointer;
|
|
1829
|
+
transition: background var(--kds-transition-shorter) var(--kds-easing-standard),
|
|
1830
|
+
box-shadow var(--kds-transition-shorter) var(--kds-easing-standard);
|
|
1831
|
+
box-sizing: border-box;
|
|
1832
|
+
box-shadow: none;
|
|
1833
|
+
}
|
|
1834
|
+
|
|
1835
|
+
button.kds-btn-google:hover,
|
|
1836
|
+
a.kds-btn-google:hover {
|
|
1837
|
+
background: #F2F2F2;
|
|
1838
|
+
box-shadow: var(--kds-shadow-1);
|
|
1839
|
+
}
|
|
1840
|
+
|
|
1841
|
+
button.kds-btn-google:active,
|
|
1842
|
+
a.kds-btn-google:active {
|
|
1843
|
+
background: #E8E8E8;
|
|
1844
|
+
}
|
|
1845
|
+
|
|
1846
|
+
button.kds-btn-google:disabled,
|
|
1847
|
+
a.kds-btn-google:disabled {
|
|
1848
|
+
background: var(--kds-color-action-disabled-bg);
|
|
1849
|
+
color: var(--kds-color-action-disabled);
|
|
1850
|
+
border-color: var(--kds-color-action-disabled-bg);
|
|
1851
|
+
cursor: not-allowed;
|
|
1852
|
+
box-shadow: none;
|
|
1853
|
+
}
|
|
1854
|
+
|
|
1855
|
+
/* Google G icon container - white background per guidelines */
|
|
1856
|
+
.kds-btn-google .kds-google-icon {
|
|
1857
|
+
display: flex;
|
|
1858
|
+
align-items: center;
|
|
1859
|
+
justify-content: center;
|
|
1860
|
+
flex-shrink: 0;
|
|
1861
|
+
}
|
|
1862
|
+
|
|
1863
|
+
.kds-btn-google .kds-google-icon svg {
|
|
1864
|
+
width: var(--kds-spacing-button-icon-size);
|
|
1865
|
+
height: var(--kds-spacing-button-icon-size);
|
|
1866
|
+
}
|
|
1867
|
+
|
|
1868
|
+
/* ========================================
|
|
1869
|
+
Link Styles
|
|
1870
|
+
======================================== */
|
|
1871
|
+
|
|
1872
|
+
/* Explicit link class */
|
|
1873
|
+
.kds-link {
|
|
1874
|
+
color: var(--kds-color-primary-main);
|
|
1875
|
+
text-decoration: none;
|
|
1876
|
+
cursor: pointer;
|
|
1877
|
+
transition: color var(--kds-transition-shorter) var(--kds-easing-standard);
|
|
1878
|
+
}
|
|
1879
|
+
|
|
1880
|
+
.kds-link:hover {
|
|
1881
|
+
color: var(--kds-color-primary-dark);
|
|
1882
|
+
text-decoration: underline;
|
|
1883
|
+
}
|
|
1884
|
+
|
|
1885
|
+
/* Contextual links inside cards and stage forms */
|
|
1886
|
+
.kds-card-body a:not(.kds-btn):not([class*="kds-btn"]),
|
|
1887
|
+
.kds-stage-content a:not(.kds-btn):not([class*="kds-btn"]) {
|
|
1888
|
+
color: var(--kds-color-primary-main);
|
|
1889
|
+
text-decoration: none;
|
|
1890
|
+
transition: color var(--kds-transition-shorter) var(--kds-easing-standard);
|
|
1891
|
+
}
|
|
1892
|
+
|
|
1893
|
+
.kds-card-body a:not(.kds-btn):not([class*="kds-btn"]):hover,
|
|
1894
|
+
.kds-stage-content a:not(.kds-btn):not([class*="kds-btn"]):hover {
|
|
1895
|
+
color: var(--kds-color-primary-dark);
|
|
1896
|
+
text-decoration: underline;
|
|
1623
1897
|
}
|
|
1624
1898
|
|
|
1625
1899
|
/* ========================================
|
|
@@ -1646,28 +1920,28 @@ body.kds-layout {
|
|
|
1646
1920
|
======================================== */
|
|
1647
1921
|
|
|
1648
1922
|
footer.primary {
|
|
1649
|
-
background: var(--
|
|
1923
|
+
background: var(--primary);
|
|
1650
1924
|
padding: var(--kds-spacing-4) var(--kds-spacing-3);
|
|
1651
|
-
|
|
1925
|
+
color: var(--on-primary);
|
|
1652
1926
|
}
|
|
1653
1927
|
|
|
1654
1928
|
footer.primary h6 {
|
|
1655
|
-
color: var(--
|
|
1656
|
-
font-weight:
|
|
1657
|
-
margin-bottom:
|
|
1929
|
+
color: var(--on-primary);
|
|
1930
|
+
font-weight: var(--kds-font-weight-semibold);
|
|
1931
|
+
margin-bottom: var(--kds-spacing-2);
|
|
1658
1932
|
}
|
|
1659
1933
|
|
|
1660
1934
|
footer.primary a {
|
|
1661
|
-
color: var(--on-
|
|
1935
|
+
color: var(--on-primary);
|
|
1662
1936
|
text-decoration: none;
|
|
1663
1937
|
display: block;
|
|
1664
|
-
padding:
|
|
1665
|
-
transition:
|
|
1938
|
+
padding: var(--kds-spacing-0-5) 0;
|
|
1939
|
+
transition: opacity var(--kds-transition-shorter) var(--kds-easing-standard);
|
|
1666
1940
|
text-align: center;
|
|
1667
1941
|
}
|
|
1668
1942
|
|
|
1669
1943
|
footer.primary a:hover {
|
|
1670
|
-
|
|
1944
|
+
opacity: 0.8;
|
|
1671
1945
|
}
|
|
1672
1946
|
|
|
1673
1947
|
/* ========================================
|
|
@@ -1860,6 +2134,67 @@ body.dark {
|
|
|
1860
2134
|
color: var(--primary);
|
|
1861
2135
|
}
|
|
1862
2136
|
|
|
2137
|
+
/* ==========================================
|
|
2138
|
+
PASSWORD STRENGTH METER
|
|
2139
|
+
Barra de fortaleza de contraseña (3 niveles)
|
|
2140
|
+
Usando tokens de diseño
|
|
2141
|
+
========================================== */
|
|
2142
|
+
|
|
2143
|
+
.kds-password-strength {
|
|
2144
|
+
display: flex;
|
|
2145
|
+
align-items: center;
|
|
2146
|
+
gap: var(--kds-spacing-1);
|
|
2147
|
+
margin-top: var(--kds-spacing-0-5);
|
|
2148
|
+
margin-bottom: var(--kds-spacing-1);
|
|
2149
|
+
}
|
|
2150
|
+
|
|
2151
|
+
.kds-password-strength-bars {
|
|
2152
|
+
display: flex;
|
|
2153
|
+
gap: var(--kds-spacing-0-5);
|
|
2154
|
+
flex: 1;
|
|
2155
|
+
}
|
|
2156
|
+
|
|
2157
|
+
.kds-password-strength-bars span {
|
|
2158
|
+
flex: 1;
|
|
2159
|
+
height: var(--kds-spacing-0-5);
|
|
2160
|
+
border-radius: var(--kds-radius-sm);
|
|
2161
|
+
background: var(--outline-variant);
|
|
2162
|
+
transition: background 0.2s ease;
|
|
2163
|
+
}
|
|
2164
|
+
|
|
2165
|
+
.kds-password-strength-bars span.weak {
|
|
2166
|
+
background: var(--kds-color-error-main);
|
|
2167
|
+
}
|
|
2168
|
+
|
|
2169
|
+
.kds-password-strength-bars span.medium {
|
|
2170
|
+
background: var(--kds-color-warning-main);
|
|
2171
|
+
}
|
|
2172
|
+
|
|
2173
|
+
.kds-password-strength-bars span.strong {
|
|
2174
|
+
background: var(--kds-color-success-main);
|
|
2175
|
+
}
|
|
2176
|
+
|
|
2177
|
+
.kds-password-strength-label {
|
|
2178
|
+
font-family: var(--kds-font-family-primary);
|
|
2179
|
+
font-size: var(--kds-font-size-xs);
|
|
2180
|
+
font-weight: var(--kds-font-weight-medium);
|
|
2181
|
+
min-width: var(--kds-spacing-6);
|
|
2182
|
+
text-align: right;
|
|
2183
|
+
color: var(--kds-color-text-secondary);
|
|
2184
|
+
}
|
|
2185
|
+
|
|
2186
|
+
.kds-password-strength-label.weak {
|
|
2187
|
+
color: var(--kds-color-error-main);
|
|
2188
|
+
}
|
|
2189
|
+
|
|
2190
|
+
.kds-password-strength-label.medium {
|
|
2191
|
+
color: var(--kds-color-warning-main);
|
|
2192
|
+
}
|
|
2193
|
+
|
|
2194
|
+
.kds-password-strength-label.strong {
|
|
2195
|
+
color: var(--kds-color-success-main);
|
|
2196
|
+
}
|
|
2197
|
+
|
|
1863
2198
|
/* ========================================
|
|
1864
2199
|
TOOLTIPS - Personaliza Beer CSS .tooltip
|
|
1865
2200
|
======================================== */
|
|
@@ -2039,6 +2374,22 @@ label.radio:has(input:disabled) {
|
|
|
2039
2374
|
flex-direction: column;
|
|
2040
2375
|
}
|
|
2041
2376
|
|
|
2377
|
+
/* Stage Content Narrow - For login/register pages with centered card */
|
|
2378
|
+
.kds-stage-content.narrow {
|
|
2379
|
+
max-width: var(--kds-stage-narrow-max-width);
|
|
2380
|
+
margin-left: auto;
|
|
2381
|
+
margin-right: auto;
|
|
2382
|
+
width: 100%;
|
|
2383
|
+
}
|
|
2384
|
+
|
|
2385
|
+
/* Stage Centered - Vertically center content in viewport (pre-login pages) */
|
|
2386
|
+
.kds-stage-centered {
|
|
2387
|
+
display: flex;
|
|
2388
|
+
align-items: center;
|
|
2389
|
+
justify-content: center;
|
|
2390
|
+
flex: 1;
|
|
2391
|
+
}
|
|
2392
|
+
|
|
2042
2393
|
/* Stage Actions - Bottom button area (if not using sticky footer) */
|
|
2043
2394
|
.kds-stage-actions {
|
|
2044
2395
|
display: flex;
|
|
@@ -2304,6 +2655,7 @@ dialog.modal .field.border:focus-within {
|
|
|
2304
2655
|
max-width: 1400px;
|
|
2305
2656
|
margin-left: auto;
|
|
2306
2657
|
margin-right: auto;
|
|
2658
|
+
min-height: unset;
|
|
2307
2659
|
}
|
|
2308
2660
|
|
|
2309
2661
|
/* Nav should have no padding - only background color */
|
|
@@ -2316,6 +2668,7 @@ nav {
|
|
|
2316
2668
|
nav > .kds-container-center {
|
|
2317
2669
|
display: flex;
|
|
2318
2670
|
align-items: center;
|
|
2671
|
+
justify-content: space-between;
|
|
2319
2672
|
gap: var(--kds-spacing-4);
|
|
2320
2673
|
margin-left: auto !important;
|
|
2321
2674
|
margin-right: auto !important;
|
|
@@ -2325,6 +2678,14 @@ nav > .kds-container-center {
|
|
|
2325
2678
|
padding-bottom: var(--kds-spacing-2);
|
|
2326
2679
|
}
|
|
2327
2680
|
|
|
2681
|
+
/* Navbar brand/logo */
|
|
2682
|
+
.kds-navbar-brand {
|
|
2683
|
+
font-weight: var(--kds-font-weight-bold);
|
|
2684
|
+
font-size: var(--kds-font-size-lg);
|
|
2685
|
+
text-decoration: none;
|
|
2686
|
+
color: inherit;
|
|
2687
|
+
}
|
|
2688
|
+
|
|
2328
2689
|
footer,
|
|
2329
2690
|
footer.primary {
|
|
2330
2691
|
padding-left: 0 !important;
|
|
@@ -2376,11 +2737,6 @@ footer > .kds-container-center {
|
|
|
2376
2737
|
max-width: 1200px;
|
|
2377
2738
|
}
|
|
2378
2739
|
|
|
2379
|
-
/* Margin top utilities */
|
|
2380
|
-
.kds-mt-3 {
|
|
2381
|
-
margin-top: var(--kds-spacing-3);
|
|
2382
|
-
}
|
|
2383
|
-
|
|
2384
2740
|
/* ========================================
|
|
2385
2741
|
AUTOMATIC SPACING SYSTEM
|
|
2386
2742
|
Components handle their own spacing
|
|
@@ -2791,8 +3147,8 @@ footer > .kds-container-center {
|
|
|
2791
3147
|
display: flex;
|
|
2792
3148
|
flex-direction: column;
|
|
2793
3149
|
overflow: visible;
|
|
2794
|
-
padding-top: var(--kds-spacing-
|
|
2795
|
-
padding-bottom: var(--kds-spacing-
|
|
3150
|
+
padding-top: var(--kds-spacing-6);
|
|
3151
|
+
padding-bottom: var(--kds-spacing-6);
|
|
2796
3152
|
}
|
|
2797
3153
|
|
|
2798
3154
|
/* ============================================
|
|
@@ -3584,18 +3940,13 @@ dialog#surveyModal button.circle {
|
|
|
3584
3940
|
text-decoration: none;
|
|
3585
3941
|
}
|
|
3586
3942
|
|
|
3587
|
-
|
|
3588
|
-
|
|
3589
|
-
|
|
3590
|
-
.kds-mt-4 { margin-top: var(--kds-spacing-4); }
|
|
3591
|
-
.kds-mt-6 { margin-top: var(--kds-spacing-6); }
|
|
3592
|
-
.kds-mt-8 { margin-top: var(--kds-spacing-8); }
|
|
3943
|
+
.kds-text-muted {
|
|
3944
|
+
color: var(--on-surface-variant);
|
|
3945
|
+
}
|
|
3593
3946
|
|
|
3594
|
-
.kds-
|
|
3595
|
-
|
|
3596
|
-
|
|
3597
|
-
.kds-mb-6 { margin-bottom: var(--kds-spacing-6); }
|
|
3598
|
-
.kds-mb-8 { margin-bottom: var(--kds-spacing-8); }
|
|
3947
|
+
.kds-text-sm {
|
|
3948
|
+
font-size: var(--kds-font-size-sm);
|
|
3949
|
+
}
|
|
3599
3950
|
|
|
3600
3951
|
/* Display utilities */
|
|
3601
3952
|
.kds-hidden {
|
|
@@ -3757,10 +4108,13 @@ dialog#surveyModal button.circle {
|
|
|
3757
4108
|
|
|
3758
4109
|
.kds-divider-text {
|
|
3759
4110
|
text-align: center;
|
|
3760
|
-
margin: var(--kds-spacing-
|
|
4111
|
+
margin: var(--kds-spacing-2) 0;
|
|
3761
4112
|
color: var(--kds-color-text-secondary);
|
|
3762
4113
|
position: relative;
|
|
3763
4114
|
font-size: var(--kds-font-size-sm);
|
|
4115
|
+
/* Reset BeerCSS [class*=divider] overrides */
|
|
4116
|
+
background-color: transparent !important;
|
|
4117
|
+
block-size: auto !important;
|
|
3764
4118
|
}
|
|
3765
4119
|
|
|
3766
4120
|
.kds-divider-text span {
|
|
@@ -3770,6 +4124,12 @@ dialog#surveyModal button.circle {
|
|
|
3770
4124
|
z-index: 1;
|
|
3771
4125
|
}
|
|
3772
4126
|
|
|
4127
|
+
/* Inside cards/elevated surfaces, use paper background */
|
|
4128
|
+
.kds-card-elevated .kds-divider-text span,
|
|
4129
|
+
.kds-card-body .kds-divider-text span {
|
|
4130
|
+
background: var(--kds-color-background-paper);
|
|
4131
|
+
}
|
|
4132
|
+
|
|
3773
4133
|
.kds-divider-text::before {
|
|
3774
4134
|
content: '';
|
|
3775
4135
|
position: absolute;
|
|
@@ -3876,3 +4236,8 @@ dialog#surveyModal button.circle {
|
|
|
3876
4236
|
.z-1000 {
|
|
3877
4237
|
z-index: 1000;
|
|
3878
4238
|
}
|
|
4239
|
+
|
|
4240
|
+
/* height and min-heighy (for layout purposes) */
|
|
4241
|
+
.min-h-unset{
|
|
4242
|
+
min-height: unset !important;
|
|
4243
|
+
}
|