summaryrefslogtreecommitdiffstats
path: root/src/components/molecules/layout/widget.module.scss
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2022-05-24 19:35:12 +0200
committerGitHub <noreply@github.com>2022-05-24 19:35:12 +0200
commitc85ab5ad43ccf52881ee224672c41ec30021cf48 (patch)
tree8058808d9bfca19383f120c46b34d99ff2f89f63 /src/components/molecules/layout/widget.module.scss
parent52404177c07a2aab7fc894362fb3060dff2431a0 (diff)
parent11b9de44a4b2f305a6a484187805e429b2767118 (diff)
refactor: use storybook and atomic design (#16)
BREAKING CHANGE: rewrite most of the Typescript types, so the content format (the meta in particular) needs to be updated.
Diffstat (limited to 'src/components/molecules/layout/widget.module.scss')
-rw-r--r--src/components/molecules/layout/widget.module.scss65
1 files changed, 65 insertions, 0 deletions
diff --git a/src/components/molecules/layout/widget.module.scss b/src/components/molecules/layout/widget.module.scss
new file mode 100644
index 0000000..27d7ffd
--- /dev/null
+++ b/src/components/molecules/layout/widget.module.scss
@@ -0,0 +1,65 @@
+@use "@styles/abstracts/functions" as fun;
+@use "@styles/abstracts/mixins" as mix;
+
+.widget {
+ display: flex;
+ flex-flow: column;
+
+ &__header {
+ z-index: 2;
+ background: var(--color-bg);
+ }
+
+ &__body {
+ position: relative;
+ }
+
+ &--has-borders & {
+ &__body {
+ border: fun.convert-px(2) solid var(--color-primary-dark);
+ }
+ }
+
+ &--collapsed & {
+ &__body {
+ max-height: 0;
+ margin: 0;
+ visibility: hidden;
+ opacity: 0;
+ overflow: hidden;
+ border: 0 solid transparent;
+ transition: all 0.1s linear 0.3s,
+ max-height 0.5s cubic-bezier(0, 1, 0, 1) 0s, margin 0.3s ease-in-out 0s;
+ }
+ }
+
+ &--expanded#{&}--has-scroll {
+ @include mix.media("screen") {
+ @include mix.dimensions("lg") {
+ max-height: 95vh;
+
+ .widget__body {
+ overflow: hidden;
+ }
+
+ &:hover,
+ &:focus-within {
+ .widget__body {
+ overflow-y: auto;
+ }
+ }
+ }
+ }
+ }
+
+ &--expanded & {
+ &__body {
+ max-height: 10000px; // needs a fixed value for transition.
+ margin: var(--spacing-sm) 0;
+ opacity: 1;
+ visibility: visible;
+ transition: all 0.5s ease-in-out 0s, border 0s linear 0s,
+ max-height 0.6s ease-in-out 0s;
+ }
+ }
+}