diff --git a/src/components/ListItem/_listItem.scss b/src/components/ListItem/_listItem.scss index de9bbf5..85408de 100644 --- a/src/components/ListItem/_listItem.scss +++ b/src/components/ListItem/_listItem.scss @@ -1,70 +1,31 @@ -@use '../../styles/tokens/typography' as *; +@use "../../styles/tokens/typography" as *; .list-item { - width: 350px; display: flex; align-items: center; - justify-content: space-between; - padding: var(--nds-spacing-md); - border-radius: var(--nds-radius-sm); - background: var(--nds-background, #040B0B); - flex-shrink: 0; - position: relative; - cursor: pointer; + gap: var(--nds-spacing-sm); + padding: var(--nds-spacing-sm) var(--nds-spacing-md); + border-radius: var(--nds-radius-md); + transition: background-color 120ms ease; &:hover { - background: color-mix(in srgb, var(--nds-secondary) 25%, transparent); + background-color: var(--nds-surface-hover); } - &:active { - background: color-mix(in srgb, var(--nds-accent) 25%, transparent); - } - - &::after { - content: ''; - position: absolute; - inset: 0; - border-right: 1px solid; - border-bottom: 1px solid; - border-radius: var(--nds-radius-md); - border-color: transparent; - background: - linear-gradient(var(--nds-background, #040B0B), var(--nds-background, #040B0B)) padding-box, - linear-gradient( - 135deg, - transparent 0%, - transparent 20%, - rgba(245, 250, 250, 0.08) 50%, - rgba(245, 250, 250, 0.28) 100% - ) border-box; - -webkit-mask: - linear-gradient(#fff 0 0) padding-box, - linear-gradient(#fff 0 0); - -webkit-mask-composite: destination-out; - mask-composite: exclude; - pointer-events: none; - } - - &::before { - content: ''; - position: absolute; - top: 0; - right: -1px; - width: 1px; - height: 100%; - pointer-events: none; - } - - &__content { + &__body { display: flex; flex-direction: column; - gap: var(--nds-spacing-md); + gap: var(--nds-spacing-3xs); + flex: 1; + min-width: 0; } - - &__subTitle { - @include text-base; - } - &__title { - @include text-xl; + @include text-label; + color: var(--nds-text); + margin: 0; } -} \ No newline at end of file + &__subtitle { + @include text-sm; + color: var(--nds-neutral); + margin: 0; + } +} diff --git a/src/components/ListItem/listItem.astro b/src/components/ListItem/listItem.astro index 7234d08..bb7a30e 100644 --- a/src/components/ListItem/listItem.astro +++ b/src/components/ListItem/listItem.astro @@ -1,15 +1,11 @@ --- -import Arrow2 from "../Icons/Arrow2/Arrow2.astro" +export interface Props {} --- -
-
- -
- + +
+
\ No newline at end of file + @use "./_listItem.scss"; + diff --git a/src/components/ListItem/listItemSubtitle.astro b/src/components/ListItem/listItemSubtitle.astro index 50a75b5..37d4d25 100644 --- a/src/components/ListItem/listItemSubtitle.astro +++ b/src/components/ListItem/listItemSubtitle.astro @@ -1,7 +1,11 @@ -
- -
+--- +export interface Props {} +--- + +

+ +

\ No newline at end of file + @use "./_listItem.scss"; + diff --git a/src/components/ListItem/listItemTitle.astro b/src/components/ListItem/listItemTitle.astro index 378fa43..6216c6a 100644 --- a/src/components/ListItem/listItemTitle.astro +++ b/src/components/ListItem/listItemTitle.astro @@ -1,7 +1,11 @@ -
- -
+--- +export interface Props {} +--- + +

+ +

\ No newline at end of file + @use "./_listItem.scss"; + diff --git a/src/components/Modal/_modal.scss b/src/components/Modal/_modal.scss new file mode 100644 index 0000000..d271c53 --- /dev/null +++ b/src/components/Modal/_modal.scss @@ -0,0 +1,78 @@ +@use "../../styles/tokens/typography" as *; + +.modal { + &__overlay { + position: fixed; + inset: 0; + background-color: rgba(2, 12, 12, 0.55); + backdrop-filter: blur(3px); + display: none; + align-items: center; + justify-content: center; + z-index: 200; + padding: var(--nds-spacing-md); + } + &__dialog { + width: min(460px, 100%); + background-color: var(--nds-surface); + border: var(--nds-border-width-thin) solid var(--nds-border); + border-radius: var(--nds-radius-xl); + overflow: hidden; + box-shadow: var(--nds-shadow-lg); + animation: nds-modal-in 180ms cubic-bezier(0.2, 0.8, 0.3, 1); + } + &__head { + display: flex; + align-items: center; + justify-content: space-between; + padding: var(--nds-spacing-md) var(--nds-spacing-lg); + border-bottom: var(--nds-border-width-thin) solid var(--nds-border); + } + &__title { + @include text-xl; + color: var(--nds-text); + } + &__close { + background: transparent; + border: none; + color: var(--nds-neutral); + cursor: pointer; + display: flex; + padding: var(--nds-spacing-3xs); + border-radius: var(--nds-radius-sm); + transition: + color 120ms ease, + background-color 120ms ease; + &:hover { + color: var(--nds-text); + background-color: var(--nds-surface-hover); + } + } + &__body { + padding: var(--nds-spacing-lg); + @include text-base; + color: var(--nds-text); + } + &__footer { + display: flex; + justify-content: flex-end; + gap: var(--nds-spacing-xs); + padding: var(--nds-spacing-md) var(--nds-spacing-lg); + border-top: var(--nds-border-width-thin) solid var(--nds-border); + } +} + +nds-modal[data-open="true"] .modal__overlay { + display: flex; +} + +@keyframes nds-modal-in { + from { + opacity: 0; + transform: translateY(8px) scale(0.98); + } + to { + opacity: 1; + transform: translateY(0) scale(1); + } +} diff --git a/src/components/Modal/modal.astro b/src/components/Modal/modal.astro new file mode 100644 index 0000000..087a933 --- /dev/null +++ b/src/components/Modal/modal.astro @@ -0,0 +1,84 @@ +--- +import { CloseIcon } from "../Icons"; + +export interface Props { + id: string; + title?: string; + open?: boolean; +} +const { id, title, open = false } = Astro.props; +const hasFooter = Astro.slots.has("footer"); +--- + + + + + + + +