@splendidlabz/styles 2.2.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.
- package/.stylelintrc.js +3 -0
- package/.turbo/turbo-lint.log +4 -0
- package/Base/_Accessibility.scss +32 -0
- package/Base/_Base.scss +57 -0
- package/Base/_Focus.scss +38 -0
- package/Base/_Transition.scss +8 -0
- package/Base/_index.scss +4 -0
- package/CHANGELOG.md +56 -0
- package/Components/_Box.scss +9 -0
- package/Components/_BrowserFrame.scss +89 -0
- package/Components/_Figure.scss +5 -0
- package/Components/_List.scss +19 -0
- package/Components/_Prose.scss +82 -0
- package/Components/_Scrollbars.scss +40 -0
- package/Components/_SimpleSVG.scss +9 -0
- package/Components/_index.scss +12 -0
- package/Effects/_Backdrop.scss +4 -0
- package/Effects/_Elevation.scss +92 -0
- package/Effects/_Glow.scss +51 -0
- package/Effects/_Gradients.scss +88 -0
- package/Effects/_Shadows.scss +51 -0
- package/Effects/_SpecialShadows.scss +45 -0
- package/Effects/_Text-Outline.scss +25 -0
- package/Effects/_index.scss +12 -0
- package/Experimental/_SimplePricingPlan.scss +141 -0
- package/Forms/_Button.scss +106 -0
- package/Forms/_Combobox.scss +49 -0
- package/Forms/_FormBase.scss +43 -0
- package/Forms/_FormControls.scss +95 -0
- package/Forms/_Range.scss +101 -0
- package/Forms/_Select.scss +114 -0
- package/Forms/_Switch.scss +66 -0
- package/Forms/_TextField.scss +116 -0
- package/Forms/_Textarea.scss +41 -0
- package/Forms/_index.scss +10 -0
- package/Typography/_WritingMode.scss +33 -0
- package/Typography/_index.scss +1 -0
- package/UI/Codepen.scss +11 -0
- package/UI/Tweet.scss +5 -0
- package/UI/Youtube.scss +13 -0
- package/UI/_Accordion.scss +33 -0
- package/UI/_Breadcrumbs.scss +24 -0
- package/UI/_CQChecker.scss +16 -0
- package/UI/_Callout.scss +31 -0
- package/UI/_Drawer.scss +28 -0
- package/UI/_Dropdown.scss +14 -0
- package/UI/_FancyList.scss +30 -0
- package/UI/_PerspectiveHover.scss +9 -0
- package/UI/_Popover.scss +25 -0
- package/UI/_Resizer.scss +43 -0
- package/UI/_Spotlight.scss +42 -0
- package/UI/_Status.scss +33 -0
- package/UI/_Tabs.scss +112 -0
- package/UI/_Textwall.scss +22 -0
- package/UI/_index.scss +17 -0
- package/Utilities/_Shapes.scss +20 -0
- package/Utilities/_index.scss +1 -0
- package/Variables/_Globals.scss +33 -0
- package/Variables/_index.scss +1 -0
- package/_Animations.scss +18 -0
- package/_Fill.scss +314 -0
- package/package.json +18 -0
- package/styles.scss +12 -0
- package/utils/_index.scss +3 -0
- package/utils/_mixins.scss +6 -0
- package/utils/functions/_fns.scss +77 -0
- package/utils/functions/_fonts.scss +114 -0
package/.stylelintrc.js
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// ========================
|
|
2
|
+
// Remove animations and transitions
|
|
3
|
+
// @see https://hankchizljaw.com/wrote/a-modern-css-reset/
|
|
4
|
+
// ========================
|
|
5
|
+
@layer components {
|
|
6
|
+
@media (prefers-reduced-motion: reduce) {
|
|
7
|
+
* {
|
|
8
|
+
animation-duration: 0.01ms !important;
|
|
9
|
+
animation-iteration-count: 1 !important;
|
|
10
|
+
transition-duration: 0.01ms !important;
|
|
11
|
+
scroll-behavior: auto !important;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// ========================
|
|
16
|
+
// Hides content visually.
|
|
17
|
+
// So it's only available to screen readers and bots 🤖
|
|
18
|
+
// Solution by Joe Watkins.
|
|
19
|
+
// @see https://zellwk.com/blog/hide-content-accessibly/
|
|
20
|
+
// ========================
|
|
21
|
+
.sr-only {
|
|
22
|
+
overflow: hidden;
|
|
23
|
+
position: absolute;
|
|
24
|
+
width: 1px;
|
|
25
|
+
height: auto;
|
|
26
|
+
margin: 0;
|
|
27
|
+
padding: 0;
|
|
28
|
+
border: 0;
|
|
29
|
+
clip: rect(0 0 0 0);
|
|
30
|
+
white-space: nowrap;
|
|
31
|
+
}
|
|
32
|
+
}
|
package/Base/_Base.scss
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
// ========================
|
|
2
|
+
// HTML and Body
|
|
3
|
+
// We don't set a default typography size here because it's better for the user to set it in the root of the project.
|
|
4
|
+
// ========================
|
|
5
|
+
@layer components {
|
|
6
|
+
html {
|
|
7
|
+
font-family: system-ui, sans-serif;
|
|
8
|
+
line-height: var(--leading, 1.5);
|
|
9
|
+
font-variant-ligatures: common-ligatures;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
body {
|
|
13
|
+
color: var(--text-color);
|
|
14
|
+
background-color: var(--bg-color);
|
|
15
|
+
text-rendering: optimizelegibility;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// ========================
|
|
19
|
+
// Nicer Headers
|
|
20
|
+
// ========================
|
|
21
|
+
h1,
|
|
22
|
+
h2,
|
|
23
|
+
h3,
|
|
24
|
+
h4,
|
|
25
|
+
h5,
|
|
26
|
+
h6 {
|
|
27
|
+
font-variant-numeric: oldstyle-nums proportional-nums;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// ========================
|
|
31
|
+
// Default form and buttons decorations
|
|
32
|
+
// ========================
|
|
33
|
+
fieldset {
|
|
34
|
+
border: none;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
a {
|
|
38
|
+
color: var(--text-color, currentcolor);
|
|
39
|
+
text-decoration: none;
|
|
40
|
+
|
|
41
|
+
&:visited {
|
|
42
|
+
color: var(--text-visited-color, var(--text-color, currentcolor));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
&:hover {
|
|
46
|
+
color: var(--text-hover-color);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
&:focus {
|
|
50
|
+
color: var(--text-focus-color, var(--text-hover-color));
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
&:active {
|
|
54
|
+
color: var(--text-active-color, var(--text-hover-color));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
}
|
package/Base/_Focus.scss
ADDED
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Might have to rename this file to Outlines instead
|
|
2
|
+
// Setup Outlines for all elements for transitions and animations. If we do this, we don't have to specify each focusable element (which can be a lot).
|
|
3
|
+
|
|
4
|
+
@layer components {
|
|
5
|
+
* {
|
|
6
|
+
outline: var(--outline-width) var(--outline-style) transparent;
|
|
7
|
+
outline-offset: var(--outline-offset);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
// Styling Focus Visible States
|
|
11
|
+
a,
|
|
12
|
+
button,
|
|
13
|
+
:where([tabindex]:not([tabindex='-1'])) {
|
|
14
|
+
&:focus-visible {
|
|
15
|
+
outline-color: var(--outline-color);
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
.Focus-within {
|
|
20
|
+
&:focus-within {
|
|
21
|
+
outline: var(--outline-width) var(--outline-style) transparent;
|
|
22
|
+
outline-offset: var(--outline-offset);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
*:focus-visible {
|
|
26
|
+
outline-color: transparent;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// TODO: Blog about this.
|
|
31
|
+
// These three properties used to preserve outlines, because overflow cuts off outlines. For scrollable elements.
|
|
32
|
+
// Content-box is necessary. If not, box will cut on the right side.
|
|
33
|
+
.Preserve-outlines {
|
|
34
|
+
box-sizing: content-box;
|
|
35
|
+
margin: calc(var(--outline-width) * -1);
|
|
36
|
+
padding: calc(var(--outline-width));
|
|
37
|
+
}
|
|
38
|
+
}
|
package/Base/_index.scss
ADDED
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# @splendidlabz/styles
|
|
2
|
+
|
|
3
|
+
## 2.2.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- - Changed default button styles
|
|
8
|
+
- Removed `text:balance` from `Prose`
|
|
9
|
+
- Update Callout Styles
|
|
10
|
+
|
|
11
|
+
## 2.1.3
|
|
12
|
+
|
|
13
|
+
### Patch Changes
|
|
14
|
+
|
|
15
|
+
- Fix Layouts dependency
|
|
16
|
+
|
|
17
|
+
## 2.1.2
|
|
18
|
+
|
|
19
|
+
### Patch Changes
|
|
20
|
+
|
|
21
|
+
- - Update `PopoverContent` and `DrawerContent` default z-index values.
|
|
22
|
+
- `Divider` classes from influencing any class with `Divider` class names by modifying the `*=` class selector to target `Divider-`.
|
|
23
|
+
|
|
24
|
+
## 2.1.1
|
|
25
|
+
|
|
26
|
+
### Patch Changes
|
|
27
|
+
|
|
28
|
+
- Prevent Divider class from influencing others with the 'Divider' name
|
|
29
|
+
|
|
30
|
+
## 2.1.0
|
|
31
|
+
|
|
32
|
+
### Minor Changes
|
|
33
|
+
|
|
34
|
+
- Add robust before/after element styling with InputGroup
|
|
35
|
+
|
|
36
|
+
### Patch Changes
|
|
37
|
+
|
|
38
|
+
- Cleanup form base styles
|
|
39
|
+
- 8ef3178: Ensure combobox options use default cursor
|
|
40
|
+
|
|
41
|
+
## 2.0.0
|
|
42
|
+
|
|
43
|
+
### Major Changes
|
|
44
|
+
|
|
45
|
+
- 6c6ecec: Cleaned up Layouts by moving non-layout related components and declarations from `@splendidlabz/layouts` to `@splendidlabz/styles`.
|
|
46
|
+
|
|
47
|
+
Changes include:
|
|
48
|
+
|
|
49
|
+
- Moving `Box` and `Shapes` to `@splendidlabz/styles`
|
|
50
|
+
- Moving style-related resets to `@splendidlabz/styles`
|
|
51
|
+
- Moving accessibility preferences to `@splendidlabz/styles`
|
|
52
|
+
- Moving typography preferences to `@splendidlabz/styles`
|
|
53
|
+
|
|
54
|
+
### Minor Changes
|
|
55
|
+
|
|
56
|
+
- a9128f4: - Add `disabled` and `readonly` input styles
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
// radius
|
|
2
|
+
// bg-frame-header. NEED FALLBACK COLOR
|
|
3
|
+
// bg-frame-content. NEED FALLBACK COLOR
|
|
4
|
+
// border-width
|
|
5
|
+
// border-frame-header
|
|
6
|
+
// border-frame-content
|
|
7
|
+
// border-color
|
|
8
|
+
|
|
9
|
+
// dot-size
|
|
10
|
+
// dot-gap
|
|
11
|
+
// dot-color
|
|
12
|
+
// dot-1-color
|
|
13
|
+
// dot-2-color
|
|
14
|
+
// dot-3-color
|
|
15
|
+
|
|
16
|
+
@layer components {
|
|
17
|
+
:where([class*='BrowserFrame']) {
|
|
18
|
+
.FrameHeader {
|
|
19
|
+
display: flex;
|
|
20
|
+
flex-flow: row;
|
|
21
|
+
align-items: center;
|
|
22
|
+
border: var(--border-width, 1px) solid
|
|
23
|
+
var(--border-frame-header, var(--border-color));
|
|
24
|
+
border-bottom: 0;
|
|
25
|
+
border-radius: var(--radius) var(--radius) 0 0;
|
|
26
|
+
background: var(--bg-frame-header);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.FrameHeaderDots {
|
|
30
|
+
display: flex;
|
|
31
|
+
flex-flow: row;
|
|
32
|
+
align-items: center;
|
|
33
|
+
gap: var(--dot-gap, 0.5rem);
|
|
34
|
+
padding: 0.75rem 1rem;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.FrameHeaderDot {
|
|
38
|
+
width: var(--dot-size, 0.7rem);
|
|
39
|
+
height: var(--dot-size, 0.7rem);
|
|
40
|
+
border-radius: 50%;
|
|
41
|
+
background-color: var(--dot-color, #424242);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.FrameHeaderTabs {
|
|
45
|
+
overflow: hidden;
|
|
46
|
+
align-self: end;
|
|
47
|
+
padding-top: 0.5rem;
|
|
48
|
+
|
|
49
|
+
.Tablist {
|
|
50
|
+
gap: 0.25rem;
|
|
51
|
+
padding-inline: calc(var(--outline-width) * 2);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.FrameContent {
|
|
56
|
+
border: var(--border-width, 1px) solid
|
|
57
|
+
var(--border-frame-content, var(--border-color));
|
|
58
|
+
border-radius: 0 0 var(--radius) var(--radius);
|
|
59
|
+
background: var(--bg-frame-content);
|
|
60
|
+
|
|
61
|
+
> :where(.Content) {
|
|
62
|
+
// overflow: auto;
|
|
63
|
+
padding: 1rem;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
> :where(.Background) svg {
|
|
67
|
+
width: 100%;
|
|
68
|
+
height: 100%;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
// Colored dots
|
|
74
|
+
.BrowserFrame-colored {
|
|
75
|
+
.FrameHeaderDot {
|
|
76
|
+
&:first-child {
|
|
77
|
+
background-color: var(--dot-1-color, #e2544d);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
&:nth-child(2) {
|
|
81
|
+
background-color: var(--dot-2-color, #d79f27);
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
&:last-child {
|
|
85
|
+
background-color: var(--dot-3-color, #22a936);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
// Not sure what is used for now... might be able to delete.
|
|
3
|
+
.List {
|
|
4
|
+
margin-left: 1em;
|
|
5
|
+
list-style-position: outside;
|
|
6
|
+
|
|
7
|
+
> :where(ul, ol) {
|
|
8
|
+
padding-left: 1em;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
ul[class~='List'] {
|
|
13
|
+
list-style-type: disc;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
ol[class='List'] {
|
|
17
|
+
list-style: decimal;
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
@layer components {
|
|
2
|
+
// Updating Prose to use Flex too, but this is incomplete
|
|
3
|
+
.Prose {
|
|
4
|
+
display: flex;
|
|
5
|
+
flex-flow: column;
|
|
6
|
+
gap: 1em;
|
|
7
|
+
max-width: 100%;
|
|
8
|
+
|
|
9
|
+
// Using padding instead of margin, so #targets will leave some whitespace above when scolling to the component. (We can also use scroll-margin-top + margin-top... but this is simpler).
|
|
10
|
+
* + :where(h2, h3),
|
|
11
|
+
* + :where(astro-island, astro-slot) > :where(:where(h2, h3):first-child) {
|
|
12
|
+
padding-top: 2em;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
* + :where(h4, h5, h6),
|
|
16
|
+
*
|
|
17
|
+
+ :where(astro-island, astro-slot)
|
|
18
|
+
> :where(:where(h4, h5, h6):first-child) {
|
|
19
|
+
padding-top: 1em;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
:where(ul, ol) {
|
|
23
|
+
list-style-type: revert-layer;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
// Basic list styles
|
|
27
|
+
> :where(ul, ol),
|
|
28
|
+
> :where(astro-island, astro-slot) > :where(ul, ol) {
|
|
29
|
+
list-style-position: outside;
|
|
30
|
+
margin-left: 2em;
|
|
31
|
+
|
|
32
|
+
:where(ul, ol) {
|
|
33
|
+
padding-left: 2em;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
li {
|
|
37
|
+
font-variant-numeric: lining-nums;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
li + li {
|
|
41
|
+
margin-top: 0.25em;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
li:has(li) + li {
|
|
45
|
+
margin-top: 0.5em;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
li > :where(ul, ol) {
|
|
49
|
+
margin-top: 0.25em;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
code {
|
|
54
|
+
font-size: 0.8em;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
:not(pre) > code {
|
|
58
|
+
display: inline;
|
|
59
|
+
padding: 0.2em 0.25em;
|
|
60
|
+
border-radius: var(--radius);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Code Styles
|
|
64
|
+
pre {
|
|
65
|
+
padding: 1em;
|
|
66
|
+
border-radius: var(--radius);
|
|
67
|
+
|
|
68
|
+
code {
|
|
69
|
+
background-color: transparent;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
:where(a) {
|
|
74
|
+
text-decoration: underline;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
> img {
|
|
78
|
+
border: 1px solid oklch(90% 0 0deg);
|
|
79
|
+
border-radius: var(--radius);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
// Custom Scrollbars
|
|
2
|
+
:root {
|
|
3
|
+
--scrollbar-width: thin;
|
|
4
|
+
--scrollbar-size: 12px;
|
|
5
|
+
color-scheme: dark light;
|
|
6
|
+
|
|
7
|
+
@media (prefers-color-scheme: light) {
|
|
8
|
+
--scrollbar-thumb-color: #c1c1c1;
|
|
9
|
+
--scrollbar-track-color: #fafafa;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
@media (prefers-color-scheme: dark) {
|
|
13
|
+
--scrollbar-thumb-color: #6b6b6b;
|
|
14
|
+
--scrollbar-track-color: #2d2d2d;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@layer components {
|
|
19
|
+
* {
|
|
20
|
+
scroll-behavior: var(--scroll-behavior, smooth);
|
|
21
|
+
scrollbar-width: var(--scrollbar-width, auto);
|
|
22
|
+
scrollbar-color: var(--scrollbar-thumb-color) var(--scrollbar-track-color);
|
|
23
|
+
|
|
24
|
+
/* Works on Chrome, Edge, and Safari */
|
|
25
|
+
&::-webkit-scrollbar {
|
|
26
|
+
width: var(--scrollbar-size);
|
|
27
|
+
height: var(--scrollbar-size);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
&::-webkit-scrollbar-track {
|
|
31
|
+
background: var(--scrollbar-track-color);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
&::-webkit-scrollbar-thumb {
|
|
35
|
+
border: 3px solid var(--scrollbar-track-color);
|
|
36
|
+
border-radius: 100px;
|
|
37
|
+
background-color: var(--scrollbar-thumb-color);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
@use './SpecialShadows' as *;
|
|
2
|
+
|
|
3
|
+
@layer components {
|
|
4
|
+
@for $i from 1 through 6 {
|
|
5
|
+
.elevation-#{$i} {
|
|
6
|
+
--shadow-color: rgb(0 0 0 / 8%);
|
|
7
|
+
|
|
8
|
+
@include StackedShadow($elevation: $i);
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
.tw-elevation {
|
|
13
|
+
box-shadow: 0 1px 2px 0 rgb(0 0 0 / 5%);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.tw-elevation-2 {
|
|
17
|
+
box-shadow:
|
|
18
|
+
0 1px 3px 0 rgb(0 0 0 / 10%),
|
|
19
|
+
0 1px 2px -1px rgb(0 0 0 / 10%);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.tw-elevation-3 {
|
|
23
|
+
box-shadow:
|
|
24
|
+
0 4px 6px -1px rgb(0 0 0 / 10%),
|
|
25
|
+
0 2px 4px -2px rgb(0 0 0 / 10%);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.tw-elevation-4 {
|
|
29
|
+
box-shadow:
|
|
30
|
+
0 10px 15px -3px rgb(0 0 0 / 10%),
|
|
31
|
+
0 4px 6px -4px rgb(0 0 0 / 10%);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.tw-elevation-5 {
|
|
35
|
+
box-shadow:
|
|
36
|
+
0 20px 25px -5px rgb(0 0 0 / 10%),
|
|
37
|
+
0 8px 10px -6px rgb(0 0 0 / 10%);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.tw-elevation-6 {
|
|
41
|
+
box-shadow: 0 25px 50px -12px rgb(0 0 0 / 25%);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.mui-elevation-1 {
|
|
45
|
+
box-shadow:
|
|
46
|
+
0 2px 1px -1px rgb(0 0 0 / 20%),
|
|
47
|
+
0 1px 1px 0 rgb(0 0 0 / 14%),
|
|
48
|
+
0 1px 3px 0 rgb(0 0 0 / 12%);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.mui-elevation-2 {
|
|
52
|
+
box-shadow:
|
|
53
|
+
0 3px 1px -2px rgb(0 0 0 / 20%),
|
|
54
|
+
0 2px 2px 0 rgb(0 0 0 / 14%),
|
|
55
|
+
0 1px 5px 0 rgb(0 0 0 / 12%);
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
.mui-elevation-3 {
|
|
59
|
+
box-shadow:
|
|
60
|
+
0 3px 3px -2px rgb(0 0 0 / 20%),
|
|
61
|
+
0 3px 4px 0 rgb(0 0 0 / 14%),
|
|
62
|
+
0 1px 8px 0 rgb(0 0 0 / 12%);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.mui-elevation-4 {
|
|
66
|
+
box-shadow:
|
|
67
|
+
0 2px 4px -1px rgb(0 0 0 / 20%),
|
|
68
|
+
0 4px 5px 0 rgb(0 0 0 / 14%),
|
|
69
|
+
0 1px 10px 0 rgb(0 0 0 / 12%);
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.mui-elevation-5 {
|
|
73
|
+
box-shadow:
|
|
74
|
+
0 3px 5px -1px rgb(0 0 0 / 20%),
|
|
75
|
+
0 5px 8px 0 rgb(0 0 0 / 14%),
|
|
76
|
+
0 1px 14px 0 rgb(0 0 0 / 12%);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.mui-elevation-6 {
|
|
80
|
+
box-shadow:
|
|
81
|
+
0 3px 5px -1px rgb(0 0 0 / 20%),
|
|
82
|
+
0 6px 10px 0 rgb(0 0 0 / 14%),
|
|
83
|
+
0 1px 18px 0 rgb(0 0 0 / 12%);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
.mui-elevation-7 {
|
|
87
|
+
box-shadow:
|
|
88
|
+
0 4px 5px -2px rgb(0 0 0 / 20%),
|
|
89
|
+
0 7px 10px 1px rgb(0 0 0 / 14%),
|
|
90
|
+
0 2px 16px 1px rgb(0 0 0 / 12%);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
// Not ready. May be removing this in favour of shadow instead.
|
|
2
|
+
@layer components {
|
|
3
|
+
.glow {
|
|
4
|
+
--shadow-x: 0;
|
|
5
|
+
--shadow-y: 0;
|
|
6
|
+
--shadow-blur: 0.5em;
|
|
7
|
+
--shadow-spread: 0.25em;
|
|
8
|
+
--shadow-alpha: 0.5;
|
|
9
|
+
|
|
10
|
+
position: relative;
|
|
11
|
+
|
|
12
|
+
> * {
|
|
13
|
+
position: relative;
|
|
14
|
+
z-index: 1;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
&:hover,
|
|
18
|
+
&:focus {
|
|
19
|
+
--shadow-alpha: 1;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
&::before {
|
|
23
|
+
content: '';
|
|
24
|
+
position: absolute;
|
|
25
|
+
// Required if parent element is inline-block.
|
|
26
|
+
// Not required if parent element is inline-flex
|
|
27
|
+
top: calc(var(--border-width, 0px) * -1);
|
|
28
|
+
left: calc(var(--border-width, 0px) * -1);
|
|
29
|
+
box-sizing: content-box;
|
|
30
|
+
width: 100%;
|
|
31
|
+
height: 100%;
|
|
32
|
+
border: inherit;
|
|
33
|
+
border-radius: inherit;
|
|
34
|
+
box-shadow: var(--shadow-x) var(--shadow-y) var(--shadow-blur)
|
|
35
|
+
var(--shadow-spread) var(--shadow-color);
|
|
36
|
+
opacity: var(--shadow-alpha);
|
|
37
|
+
transition: var(--transition-values);
|
|
38
|
+
transition-property: opacity;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.glow-2 {
|
|
43
|
+
--shadow-blur: 1em;
|
|
44
|
+
--shadow-spread: 0.375em;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.glow-3 {
|
|
48
|
+
--shadow-blur: 1.5em;
|
|
49
|
+
--shadow-spread: 0.5em;
|
|
50
|
+
}
|
|
51
|
+
}
|