Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(skeleton-loader): new module #2177

Merged
merged 25 commits into from
Dec 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
73c56a6
feat(skeleton-loader): new module
saiponnada Sep 11, 2023
4c72e81
feat(skeleton-loader): added tile layout
saiponnada Oct 6, 2023
1e2d3fa
feat(skeleton-loader): added AI variant
saiponnada Oct 6, 2023
4ff9eea
feat(skeleton-loader): refactor aria-hidden to use semantic hidden
saiponnada Oct 10, 2023
8bc0b64
refactor: skeleton tile and layout changes
saiponnada Oct 12, 2023
6ae0148
fix: css animations
saiponnada Oct 20, 2023
16161ee
refactor(skeletons): to use css vars
saiponnada Oct 25, 2023
16a2b25
refactor(skeletons): added stories
saiponnada Oct 25, 2023
52ef229
refactor(skeletons): added container queries to images
saiponnada Oct 25, 2023
a685b75
feat(skeletons): added elevated styles
saiponnada Oct 31, 2023
e2c0e1e
feat(skeletons): updated docs
saiponnada Oct 31, 2023
efded5c
feat(skeltons): added AI gradient variants
saiponnada Nov 1, 2023
c472add
feat(skeleton): refactored skeleton to use :empty
saiponnada Nov 2, 2023
d52bad7
docs(skeleton): updated docs
saiponnada Nov 2, 2023
9a50437
feat(skeleton): refactored skeleton to remove :empty
saiponnada Nov 3, 2023
6e73434
refactor: code review changes
saiponnada Nov 8, 2023
c1604a0
refactor(skeletons): code review changes
saiponnada Nov 9, 2023
f981169
docs(skeleton): added BETA tag
saiponnada Nov 10, 2023
ba9fa64
refactor(skeletons): code review changes contd
saiponnada Nov 14, 2023
59bff8b
refactor(skeletons): doc changes
saiponnada Nov 14, 2023
1bc49a1
docs(skeletons): updated docs
saiponnada Nov 14, 2023
e199fac
docs(skeleton): more review changes
saiponnada Nov 17, 2023
a921599
docs(skeletons): updated examples verbiage
saiponnada Nov 20, 2023
14f8dcf
feat(skeleton): layout changes
saiponnada Nov 28, 2023
0cc80ee
chore: rolledback gemfile changes
saiponnada Nov 28, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions dist/legacy-tokens/ds4-light.css
Original file line number Diff line number Diff line change
Expand Up @@ -134,4 +134,39 @@
var(--color-ai-solid-green-subtle) 0%,
var(--color-ai-solid-blue-subtle) 154.5%
);
--color-loading-fill: #f2f2f2;
saiponnada marked this conversation as resolved.
Show resolved Hide resolved
--color-loading-shimmer: linear-gradient(
270deg,
var(--color-loading-fill) 0%,
var(--color-loading-fill) 34%,
#f8f8f8 50%,
var(--color-loading-fill) 66%,
var(--color-loading-fill) 100%
);
--color-loading-fill-elevated: var(--color-loading-fill);
--color-loading-shimmer-elevated: var(--color-loading-shimmer);
--color-loading-ai-gradient-purple-subtle: linear-gradient(
270deg,
var(--color-ai-solid-red-subtle) 0%,
var(--color-ai-solid-red-subtle) 34%,
var(--color-ai-solid-purple-subtle) 50%,
var(--color-ai-solid-red-subtle) 66%,
var(--color-ai-solid-red-subtle) 100%
);
--color-loading-ai-gradient-blue-subtle: linear-gradient(
270deg,
var(--color-ai-solid-blue-subtle) 0%,
var(--color-ai-solid-blue-subtle) 34%,
var(--color-ai-solid-purple-subtle) 50%,
var(--color-ai-solid-blue-subtle) 66%,
var(--color-ai-solid-blue-subtle) 100%
);
--color-loading-ai-gradient-green-subtle: linear-gradient(
270deg,
var(--color-ai-solid-green-subtle) 0%,
var(--color-ai-solid-green-subtle) 34%,
var(--color-ai-solid-blue-subtle) 50%,
var(--color-ai-solid-green-subtle) 66%,
var(--color-ai-solid-green-subtle) 100%
);
}
15 changes: 15 additions & 0 deletions dist/mixins/skeleton-mixins.less
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
:root {
--skeleton-border-radius: 0;
--skeleton-height: 48px;
--skeleton-width: 100%;
--skeleton-background: var(--color-loading-fill);
}

.skeleton-base(@border-radius: var(--skeleton-border-radius), @height: var(--skeleton-height), @width: var(--skeleton-width) ) {
background: var(--skeleton-background);
border-radius: @border-radius;
cursor: progress;
height: @height;
min-height: 12px;
width: @width;
}
196 changes: 196 additions & 0 deletions dist/skeleton/skeleton.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,196 @@
:root {
--skeleton-border-radius: 0;
--skeleton-height: 48px;
--skeleton-width: 100%;
--skeleton-background: var(--color-loading-fill);
}
.skeleton {
container-name: skeleton-container;
container-type: inline-size;
}
.skeleton__avatar {
background: var(--skeleton-background);
border-radius: 50%;
cursor: progress;
height: var(--skeleton-height);
min-height: 12px;
width: var(--skeleton-height);
}
.skeleton__button {
background: var(--skeleton-background);
border-radius: 20px;
cursor: progress;
height: 40px;
min-height: 12px;
width: var(--skeleton-width);
}
.skeleton__button--small {
background: var(--skeleton-background);
border-radius: 16px;
cursor: progress;
height: 32px;
min-height: 12px;
width: var(--skeleton-width);
}
.skeleton__button--large {
background: var(--skeleton-background);
border-radius: 24px;
cursor: progress;
height: 48px;
min-height: 12px;
width: var(--skeleton-width);
}
.skeleton__text {
background: var(--skeleton-background);
border-radius: 3px;
cursor: progress;
height: 16px;
min-height: 12px;
width: calc(100% - var(--spacing-300));
}
.skeleton__text::after {
height: 16px;
margin-top: calc(16px + var(--spacing-100));
}
.skeleton__text--large {
background: var(--skeleton-background);
border-radius: 3px;
cursor: progress;
height: 24px;
min-height: 12px;
width: calc(100% - var(--spacing-300));
}
.skeleton__text--large::after {
height: 24px;
margin-top: calc(24px + var(--spacing-100));
}
.skeleton__text--multiline {
margin-bottom: var(--spacing-300);
position: relative;
width: calc(100% - var(--spacing-300));
}
.skeleton__text--multiline::after {
background: inherit;
content: "";
position: absolute;
width: calc(100% - var(--spacing-700));
}
.skeleton__text--large.skeleton__text--multiline {
margin-bottom: var(--spacing-400);
}
.skeleton__textbox {
background: var(--skeleton-background);
border-radius: 8px;
cursor: progress;
height: 48px;
min-height: 12px;
width: var(--skeleton-width);
}
.skeleton__image {
background: var(--skeleton-background);
border-radius: 8px;
cursor: progress;
height: 100%;
min-height: 12px;
width: var(--skeleton-width);
max-width: initial;
}
.skeleton__image::after {
bottom: 0;
height: 100%;
left: 0;
position: absolute;
right: 0;
top: 0;
width: 100%;
}
span.skeleton__avatar,
span.skeleton__button,
span.skeleton__text,
span.skeleton__image,
span.skeleton__textbox {
display: inline-block;
}
span.skeleton__avatar + span,
span.skeleton__button + span,
span.skeleton__text + span,
span.skeleton__image + span,
span.skeleton__textbox + span {
-webkit-margin-start: var(--spacing-100);
margin-inline-start: var(--spacing-100);
}
div.skeleton__avatar,
div.skeleton__button,
div.skeleton__text,
div.skeleton__image,
div.skeleton__textbox {
-webkit-margin-before: var(--spacing-150);
margin-block-start: var(--spacing-150);
}
.skeleton--elevated {
--skeleton-background: var(--color-loading-fill-elevated);
}
@media screen and (max-width: 512px) {
.skeleton {
--skeleton-background: var(--color-loading-shimmer);
}
.skeleton--elevated {
--skeleton-background: var(--color-loading-shimmer-elevated);
}
}
.skeleton--purple {
--skeleton-background: var(--color-loading-ai-gradient-purple-subtle);
}
.skeleton--green {
--skeleton-background: var(--color-loading-ai-gradient-green-subtle);
}
.skeleton--blue {
--skeleton-background: var(--color-loading-ai-gradient-blue-subtle);
}
@media (prefers-reduced-motion: no-preference) {
@keyframes loading-frames {
0% {
background-position: 0% 0%;
}
50% {
background-position: 45% 0%;
}
100% {
background-position: 90% 0%;
}
}
@keyframes fade-in {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
.skeleton__avatar,
.skeleton__button,
.skeleton__text,
.skeleton__image,
.skeleton__textbox {
/* setting animation-iteration-count to 6 (5000/833ms) */
/* so it does not exceed 5s per WCAG 2.2.2 */
animation: fade-in 500ms forwards, loading-frames 833ms 667ms linear 6;
animation-fill-mode: both;
background-size: 200%;
}
}
@container skeleton-container (width > 79px) {
.skeleton__image {
border-radius: 16px;
}
}
[dir="rtl"] .skeleton__avatar,
[dir="rtl"] .skeleton__button,
[dir="rtl"] .skeleton__text,
[dir="rtl"] .skeleton__image,
[dir="rtl"] .skeleton__textbox {
animation-direction: normal, reverse;
}
[dir="rtl"] .skeleton__text--multiline::after {
left: var(--spacing-700);
}
1 change: 1 addition & 0 deletions dist/tokens/evo-core.css
Original file line number Diff line number Diff line change
Expand Up @@ -121,5 +121,6 @@
--spacing-400: 32px;
--spacing-450: 36px;
--spacing-600: 48px;
--spacing-700: 56px;
--spacing-800: 64px;
}
42 changes: 42 additions & 0 deletions dist/tokens/evo-dark.css
Original file line number Diff line number Diff line change
Expand Up @@ -136,5 +136,47 @@
var(--color-ai-solid-green-subtle) 0%,
var(--color-ai-solid-blue-subtle) 154.5%
);
--color-loading-fill: #1b1b1b;
--color-loading-shimmer: linear-gradient(
270deg,
var(--color-loading-fill) 0%,
var(--color-loading-fill) 34%,
#0e0e0e 50%,
var(--color-loading-fill) 66%,
var(--color-loading-fill) 100%
);
--color-loading-fill-elevated: #222;
--color-loading-shimmer-elevated: linear-gradient(
270deg,
var(--color-loading-fill-elevated) 0%,
var(--color-loading-fill-elevated) 34%,
#1c1c1c 50%,
var(--color-loading-fill-elevated) 66%,
var(--color-loading-fill-elevated) 100%
);
--color-loading-ai-gradient-purple-subtle: linear-gradient(
270deg,
var(--color-ai-solid-red-subtle-dark) 0%,
var(--color-ai-solid-red-subtle-dark) 34%,
var(--color-ai-solid-purple-subtle-dark) 50%,
var(--color-ai-solid-red-subtle-dark) 66%,
var(--color-ai-solid-red-subtle-dark) 100%
);
--color-loading-ai-gradient-blue-subtle: linear-gradient(
270deg,
var(--color-ai-solid-blue-subtle-dark) 0%,
var(--color-ai-solid-blue-subtle-dark) 34%,
var(--color-ai-solid-purple-subtle-dark) 50%,
var(--color-ai-solid-blue-subtle-dark) 66%,
var(--color-ai-solid-blue-subtle-dark) 100%
);
--color-loading-ai-gradient-green-subtle: linear-gradient(
270deg,
var(--color-ai-solid-green-subtle-dark) 0%,
var(--color-ai-solid-green-subtle-dark) 34%,
var(--color-ai-solid-blue-subtle-dark) 50%,
var(--color-ai-solid-green-subtle-dark) 66%,
var(--color-ai-solid-green-subtle-dark) 100%
);
}
}
35 changes: 35 additions & 0 deletions dist/tokens/evo-light.css
Original file line number Diff line number Diff line change
Expand Up @@ -134,4 +134,39 @@
var(--color-ai-solid-green-subtle) 0%,
var(--color-ai-solid-blue-subtle) 154.5%
);
--color-loading-fill: #f2f2f2;
--color-loading-shimmer: linear-gradient(
270deg,
var(--color-loading-fill) 0%,
var(--color-loading-fill) 34%,
#f8f8f8 50%,
var(--color-loading-fill) 66%,
var(--color-loading-fill) 100%
);
--color-loading-fill-elevated: var(--color-loading-fill);
--color-loading-shimmer-elevated: var(--color-loading-shimmer);
--color-loading-ai-gradient-purple-subtle: linear-gradient(
270deg,
var(--color-ai-solid-red-subtle) 0%,
var(--color-ai-solid-red-subtle) 34%,
var(--color-ai-solid-purple-subtle) 50%,
var(--color-ai-solid-red-subtle) 66%,
var(--color-ai-solid-red-subtle) 100%
);
--color-loading-ai-gradient-blue-subtle: linear-gradient(
270deg,
var(--color-ai-solid-blue-subtle) 0%,
var(--color-ai-solid-blue-subtle) 34%,
var(--color-ai-solid-purple-subtle) 50%,
var(--color-ai-solid-blue-subtle) 66%,
var(--color-ai-solid-blue-subtle) 100%
);
--color-loading-ai-gradient-green-subtle: linear-gradient(
270deg,
var(--color-ai-solid-green-subtle) 0%,
var(--color-ai-solid-green-subtle) 34%,
var(--color-ai-solid-blue-subtle) 50%,
var(--color-ai-solid-green-subtle) 66%,
var(--color-ai-solid-green-subtle) 100%
);
}
1 change: 1 addition & 0 deletions dist/variables/variables.less
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
@spacing-400: @spacing-100 * 4;
@spacing-450: @spacing-100 * 4.5;
@spacing-600: @spacing-100 * 6;
@spacing-700: @spacing-100 * 7;
@spacing-800: @spacing-100 * 8;

@font-size-giant-3: @font-size-46;
Expand Down
1 change: 1 addition & 0 deletions docs/_data/modules.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ list:
- segmented-buttons
- select
- signal
- skeleton
- snackbar-dialog
- split-button
- star-rating
Expand Down
Loading
Loading