@nordcode/ui 2.1.7 → 2.1.8

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/CHANGELOG.md CHANGED
@@ -1,3 +1,9 @@
1
+ ## 2.1.8 (2026-01-02)
2
+
3
+ ### features
4
+
5
+ - use starting style & new animation for dialogs
6
+
1
7
  ## 2.1.7 (2025-12-18)
2
8
 
3
9
  ### features
package/out/complete.css CHANGED
@@ -1817,7 +1817,7 @@
1817
1817
 
1818
1818
  :where(.nc-clickable-card) {
1819
1819
  cursor: pointer;
1820
- transition: scale var(--transition-duration-quick-2) var(--ease-2);
1820
+ transition: scale var(--transition-duration-quick-2) var(--ease-out-2);
1821
1821
  position: relative;
1822
1822
  }
1823
1823
 
@@ -1854,13 +1854,10 @@
1854
1854
  --_dialog-padding-inline: var(--dialog-padding-inline, var(--spacing-base));
1855
1855
  --_dialog-layout-padding: var(--layout-padding, var(--spacing-base));
1856
1856
  --_dialog-close-size: var(--dialog-close-size, var(--control-height-base));
1857
- --_dialog-transition-duration: var(--dialog-transition-duration, var(--transition-duration-moderate-2));
1858
1857
  --_dialog-max-block-size: var(--dialog-max-block-size, 90dvh);
1859
1858
  --_dialog-max-inline-size: var(--dialog-max-inline-size, 28rem);
1860
1859
  --_dialog-radius: 0;
1861
1860
  z-index: var(--layer-important);
1862
- animation: close-dialog var(--_dialog-transition-duration) var(--easing-exit) forwards;
1863
- transition: opacity var(--_dialog-transition-duration) var(--easing-exit);
1864
1861
  border: var(--border-width-thin) solid var(--color-border-base);
1865
1862
  block-size: max-content;
1866
1863
  inline-size: 100dvw;
@@ -1888,13 +1885,46 @@
1888
1885
  }
1889
1886
  }
1890
1887
 
1891
- :where(.nc-dialog)[open] {
1892
- animation: open-dialog var(--_dialog-transition-duration) var(--easing-entry);
1888
+ :where(.nc-dialog) {
1889
+ --transform-in: perspective(80px) rotateX(.5deg) scale(.9);
1890
+ --transform-out: perspective(80px) rotateX(.5deg) scale(.95);
1891
+ --transition-time-in: var(--transition-duration-gentle-1);
1892
+ --transition-time-out: var(--transition-duration-moderate-1);
1893
+ transform: var(--transform-in);
1893
1894
  }
1894
1895
 
1895
- :where(.nc-dialog):not([open]) {
1896
+ :where(.nc-dialog), :where(.nc-dialog)::backdrop {
1897
+ transition: display var(--transition-time-out) allow-discrete, overlay var(--transition-time-out) allow-discrete, transform var(--transition-time-out) var(--ease-in-out-2), opacity var(--transition-duration-moderate-1) var(--ease-in-out-2);
1896
1898
  opacity: 0;
1897
- pointer-events: none;
1899
+ }
1900
+
1901
+ :where(.nc-dialog) {
1902
+ transform: var(--transform-out);
1903
+ }
1904
+
1905
+ :where(.nc-dialog)[open] {
1906
+ opacity: 1;
1907
+ transform: perspective(80px)rotateX(0)scale(1);
1908
+ }
1909
+
1910
+ :where(.nc-dialog)[open], :where(.nc-dialog)[open]::backdrop {
1911
+ transition: display var(--transition-time-in) allow-discrete, overlay var(--transition-time-in) allow-discrete, transform var(--transition-time-in) var(--ease-in-out-2), opacity var(--transition-time-in) var(--ease-in-out-2);
1912
+ }
1913
+
1914
+ :where(.nc-dialog)[open]::backdrop {
1915
+ -webkit-backdrop-filter: blur(20px);
1916
+ backdrop-filter: blur(20px);
1917
+ opacity: 1;
1918
+ }
1919
+
1920
+ @starting-style {
1921
+ :where(.nc-dialog)[open], :where(.nc-dialog)[open]::backdrop {
1922
+ opacity: 0;
1923
+ }
1924
+
1925
+ :where(.nc-dialog)[open] {
1926
+ transform: var(--transform-in);
1927
+ }
1898
1928
  }
1899
1929
 
1900
1930
  :where(.nc-dialog)::backdrop {
@@ -1967,26 +1997,6 @@
1967
1997
  align-items: flex-start;
1968
1998
  display: flex;
1969
1999
  }
1970
-
1971
- @keyframes open-dialog {
1972
- from {
1973
- transform: translate(0%, 100dvh)rotate(0);
1974
- }
1975
-
1976
- to {
1977
- transform: translate(0)rotate(0);
1978
- }
1979
- }
1980
-
1981
- @keyframes close-dialog {
1982
- from {
1983
- transform: translate(0)rotate(0);
1984
- }
1985
-
1986
- to {
1987
- transform: translate(0%, 100dvh)rotate(10deg);
1988
- }
1989
- }
1990
2000
  }
1991
2001
 
1992
2002
  @layer components.forms {
@@ -1601,7 +1601,7 @@
1601
1601
 
1602
1602
  :where(.nc-clickable-card) {
1603
1603
  cursor: pointer;
1604
- transition: scale var(--transition-duration-quick-2) var(--ease-2);
1604
+ transition: scale var(--transition-duration-quick-2) var(--ease-out-2);
1605
1605
  position: relative;
1606
1606
  }
1607
1607
 
@@ -1638,13 +1638,10 @@
1638
1638
  --_dialog-padding-inline: var(--dialog-padding-inline, var(--spacing-base));
1639
1639
  --_dialog-layout-padding: var(--layout-padding, var(--spacing-base));
1640
1640
  --_dialog-close-size: var(--dialog-close-size, var(--control-height-base));
1641
- --_dialog-transition-duration: var(--dialog-transition-duration, var(--transition-duration-moderate-2));
1642
1641
  --_dialog-max-block-size: var(--dialog-max-block-size, 90dvh);
1643
1642
  --_dialog-max-inline-size: var(--dialog-max-inline-size, 28rem);
1644
1643
  --_dialog-radius: 0;
1645
1644
  z-index: var(--layer-important);
1646
- animation: close-dialog var(--_dialog-transition-duration) var(--easing-exit) forwards;
1647
- transition: opacity var(--_dialog-transition-duration) var(--easing-exit);
1648
1645
  border: var(--border-width-thin) solid var(--color-border-base);
1649
1646
  block-size: max-content;
1650
1647
  inline-size: 100dvw;
@@ -1672,13 +1669,46 @@
1672
1669
  }
1673
1670
  }
1674
1671
 
1675
- :where(.nc-dialog)[open] {
1676
- animation: open-dialog var(--_dialog-transition-duration) var(--easing-entry);
1672
+ :where(.nc-dialog) {
1673
+ --transform-in: perspective(80px) rotateX(.5deg) scale(.9);
1674
+ --transform-out: perspective(80px) rotateX(.5deg) scale(.95);
1675
+ --transition-time-in: var(--transition-duration-gentle-1);
1676
+ --transition-time-out: var(--transition-duration-moderate-1);
1677
+ transform: var(--transform-in);
1677
1678
  }
1678
1679
 
1679
- :where(.nc-dialog):not([open]) {
1680
+ :where(.nc-dialog), :where(.nc-dialog)::backdrop {
1681
+ transition: display var(--transition-time-out) allow-discrete, overlay var(--transition-time-out) allow-discrete, transform var(--transition-time-out) var(--ease-in-out-2), opacity var(--transition-duration-moderate-1) var(--ease-in-out-2);
1680
1682
  opacity: 0;
1681
- pointer-events: none;
1683
+ }
1684
+
1685
+ :where(.nc-dialog) {
1686
+ transform: var(--transform-out);
1687
+ }
1688
+
1689
+ :where(.nc-dialog)[open] {
1690
+ opacity: 1;
1691
+ transform: perspective(80px)rotateX(0)scale(1);
1692
+ }
1693
+
1694
+ :where(.nc-dialog)[open], :where(.nc-dialog)[open]::backdrop {
1695
+ transition: display var(--transition-time-in) allow-discrete, overlay var(--transition-time-in) allow-discrete, transform var(--transition-time-in) var(--ease-in-out-2), opacity var(--transition-time-in) var(--ease-in-out-2);
1696
+ }
1697
+
1698
+ :where(.nc-dialog)[open]::backdrop {
1699
+ -webkit-backdrop-filter: blur(20px);
1700
+ backdrop-filter: blur(20px);
1701
+ opacity: 1;
1702
+ }
1703
+
1704
+ @starting-style {
1705
+ :where(.nc-dialog)[open], :where(.nc-dialog)[open]::backdrop {
1706
+ opacity: 0;
1707
+ }
1708
+
1709
+ :where(.nc-dialog)[open] {
1710
+ transform: var(--transform-in);
1711
+ }
1682
1712
  }
1683
1713
 
1684
1714
  :where(.nc-dialog)::backdrop {
@@ -1751,26 +1781,6 @@
1751
1781
  align-items: flex-start;
1752
1782
  display: flex;
1753
1783
  }
1754
-
1755
- @keyframes open-dialog {
1756
- from {
1757
- transform: translate(0%, 100dvh)rotate(0);
1758
- }
1759
-
1760
- to {
1761
- transform: translate(0)rotate(0);
1762
- }
1763
- }
1764
-
1765
- @keyframes close-dialog {
1766
- from {
1767
- transform: translate(0)rotate(0);
1768
- }
1769
-
1770
- to {
1771
- transform: translate(0%, 100dvh)rotate(10deg);
1772
- }
1773
- }
1774
1784
  }
1775
1785
 
1776
1786
  @layer components.forms {
package/package.json CHANGED
@@ -12,7 +12,7 @@
12
12
  "type": "git",
13
13
  "url": "https://github.com/nordcode-agency/nordcode/tree/main/packages/ui"
14
14
  },
15
- "version": "2.1.7",
15
+ "version": "2.1.8",
16
16
  "publishConfig": {
17
17
  "access": "public"
18
18
  },
@@ -56,7 +56,7 @@
56
56
  :where(.nc-clickable-card) {
57
57
  cursor: pointer;
58
58
  position: relative;
59
- transition: scale var(--transition-duration-quick-2) var(--ease-2);
59
+ transition: scale var(--transition-duration-quick-2) var(--ease-out-2);
60
60
 
61
61
  &:focus-within,
62
62
  &:hover {
@@ -3,18 +3,13 @@
3
3
  --_dialog-padding-inline: var(--dialog-padding-inline, var(--spacing-base));
4
4
  --_dialog-layout-padding: var(--layout-padding, var(--spacing-base));
5
5
  --_dialog-close-size: var(--dialog-close-size, var(--control-height-base));
6
- --_dialog-transition-duration: var(
7
- --dialog-transition-duration,
8
- var(--transition-duration-moderate-2)
9
- );
6
+
10
7
  --_dialog-max-block-size: var(--dialog-max-block-size, 90dvh);
11
8
  --_dialog-max-inline-size: var(--dialog-max-inline-size, 28rem);
12
9
 
13
10
  --_dialog-radius: 0;
14
11
  display: block;
15
12
  z-index: var(--layer-important);
16
- animation: close-dialog var(--_dialog-transition-duration) var(--easing-exit) forwards;
17
- transition: opacity var(--_dialog-transition-duration) var(--easing-exit);
18
13
  position: fixed;
19
14
  inset: 0;
20
15
  border: var(--border-width-thin) solid var(--color-border-base);
@@ -38,13 +33,60 @@
38
33
  box-shadow: var(--shadow-medium);
39
34
  }
40
35
 
36
+ /* Credits to Adam Argyle. Modified from: https://nerdy.dev/notebook/dialog-starter.html */
37
+
38
+ /* Exit Stage To */
39
+ --transform-in: perspective(80px) rotateX(0.5deg) scale(0.9);
40
+ --transform-out: perspective(80px) rotateX(0.5deg) scale(0.95);
41
+ --transition-time-in: var(--transition-duration-gentle-1);
42
+ --transition-time-out: var(--transition-duration-moderate-1);
43
+
44
+ transform: var(--transform-in);
45
+
46
+ &, &::backdrop {
47
+ transition:
48
+ display var(--transition-time-out) allow-discrete,
49
+ overlay var(--transition-time-out) allow-discrete,
50
+ transform var(--transition-time-out) var(--ease-in-out-2),
51
+ opacity var(--transition-duration-moderate-1) var(--ease-in-out-2);
52
+
53
+ /* Exit Stage To */
54
+ opacity: 0;
55
+ }
56
+
57
+ & {
58
+ transform: var(--transform-out);
59
+ }
60
+
61
+ /* On Stage */
41
62
  &[open] {
42
- animation: open-dialog var(--_dialog-transition-duration) var(--easing-entry);
63
+ opacity: 1;
64
+ transform: perspective(80px) rotateX(0deg) scale(1);
65
+
66
+ &, &::backdrop {
67
+ transition:
68
+ display var(--transition-time-in) allow-discrete,
69
+ overlay var(--transition-time-in) allow-discrete,
70
+ transform var(--transition-time-in) var(--ease-in-out-2),
71
+ opacity var(--transition-time-in) var(--ease-in-out-2);
72
+ }
73
+
74
+ &::backdrop {
75
+ backdrop-filter: blur(20px);
76
+ opacity: 1;
77
+ }
43
78
  }
44
79
 
45
- &:not([open]) {
46
- opacity: 0;
47
- pointer-events: none;
80
+ /* Enter Stage From */
81
+ @starting-style {
82
+ &[open],
83
+ &[open]::backdrop {
84
+ opacity: 0;
85
+ }
86
+
87
+ &[open] {
88
+ transform: var(--transform-in);
89
+ }
48
90
  }
49
91
 
50
92
  &::backdrop {
@@ -117,24 +159,4 @@
117
159
  background-color: var(--color-surface-subtle);
118
160
  }
119
161
  }
120
-
121
- @keyframes open-dialog {
122
- from {
123
- transform: translate(0%, 100dvh) rotate(0deg);
124
- }
125
-
126
- to {
127
- transform: translate(0dvh, 0%) rotate(0deg);
128
- }
129
- }
130
-
131
- @keyframes close-dialog {
132
- from {
133
- transform: translate(0dvh, 0%) rotate(0deg);
134
- }
135
-
136
- to {
137
- transform: translate(0%, 100dvh) rotate(10deg);
138
- }
139
- }
140
162
  }