summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorVolpeon <git@volpeon.ink>2022-06-19 13:24:25 +0200
committerVolpeon <git@volpeon.ink>2022-06-19 13:24:25 +0200
commit22e4b122ba0a362169a1bba93c4407d154977554 (patch)
tree87a88d789bc9f469dc9439d36b3854a2594e3b26 /src
parentUpdate (diff)
downloadiro-design-22e4b122ba0a362169a1bba93c4407d154977554.tar.gz
iro-design-22e4b122ba0a362169a1bba93c4407d154977554.tar.bz2
iro-design-22e4b122ba0a362169a1bba93c4407d154977554.zip
Improved lightbox
Diffstat (limited to 'src')
-rw-r--r--src/objects/_lightbox.scss84
1 files changed, 45 insertions, 39 deletions
diff --git a/src/objects/_lightbox.scss b/src/objects/_lightbox.scss
index de962e0..3f3bf59 100644
--- a/src/objects/_lightbox.scss
+++ b/src/objects/_lightbox.scss
@@ -6,8 +6,7 @@
6@include iro.props-namespace('lightbox') { 6@include iro.props-namespace('lightbox') {
7 @include iro.props-store(( 7 @include iro.props-store((
8 --dims: ( 8 --dims: (
9 --pad: fn.global-dim(--size --150), 9 --pad: fn.global-dim(--size --150),
10 --spacing: fn.global-dim(--size --200),
11 --thumbnail: ( 10 --thumbnail: (
12 --size: fn.global-dim(--size --700), 11 --size: fn.global-dim(--size --700),
13 --spacing: fn.global-dim(--size --100), 12 --spacing: fn.global-dim(--size --100),
@@ -41,36 +40,28 @@
41 --thumbnail: ( 40 --thumbnail: (
42 --selected: fn.global-color(--fg-lo), 41 --selected: fn.global-color(--fg-lo),
43 ), 42 ),
43 --footer: (
44 --bg: fn.global-color(--bg-hi),
45 ),
44 ), 46 ),
45 ), 'colors'); 47 ), 'colors');
46 48
47 @include iro.bem-object(iro.props-namespace()) { 49 @include iro.bem-object(iro.props-namespace()) {
48 display: grid; 50 display: grid;
49 grid-template-rows: auto minmax(0, 1fr) auto; 51 grid-template-rows: auto minmax(0, 1fr) auto auto;
50 grid-template-columns: minmax(0, 1fr) auto; 52 grid-template-columns: auto minmax(0, 1fr) auto;
51 grid-template-areas: 53 grid-template-areas:
52 'header close' 54 'header header close'
53 'content content' 55 'prev content next'
54 'footer footer'; 56 'thumbnails thumbnails thumbnails'
55 gap: fn.dim(--spacing); 57 'footer footer footer';
56 position: relative;
57 box-sizing: border-box; 58 box-sizing: border-box;
58 height: 100%; 59 height: 100%;
59 padding: fn.dim(--pad); 60 overflow: hidden;
60
61 @include iro.bem-elem('footer') {
62 grid-area: footer;
63 display: flex;
64 gap: fn.dim(--thumbnail --spacing);
65 padding: fn.dim(--thumbnail --selected);
66 overflow: auto;
67 }
68 61
69 @include iro.bem-elem('header') { 62 @include iro.bem-elem('header') {
70 grid-area: header; 63 grid-area: header;
71 overflow: hidden; 64 padding: fn.dim(--pad);
72 text-overflow: ellipsis;
73 white-space: nowrap;
74 } 65 }
75 66
76 @include iro.bem-elem('img') { 67 @include iro.bem-elem('img') {
@@ -79,7 +70,19 @@
79 max-width: 100%; 70 max-width: 100%;
80 max-height: 100%; 71 max-height: 100%;
81 margin: auto; 72 margin: auto;
82 padding: 0 calc(fn.dim(--nav-button --font-size) + 2 * fn.foreign-dim(--action-button, --pad-x) + 2px); 73 }
74
75 @include iro.bem-elem('thumbnails') {
76 grid-area: thumbnails;
77 display: flex;
78 gap: fn.dim(--thumbnail --spacing);
79 padding: fn.dim(--pad);
80 overflow: auto;
81 }
82
83 @include iro.bem-elem('footer') {
84 grid-area: footer;
85 background-color: fn.color(--footer --bg);
83 } 86 }
84 87
85 @include iro.bem-elem('thumbnail') { 88 @include iro.bem-elem('thumbnail') {
@@ -104,36 +107,39 @@
104 } 107 }
105 108
106 @include iro.bem-elem('close-btn') { 109 @include iro.bem-elem('close-btn') {
107 grid-area: close; 110 grid-area: close;
108 font-size: fn.dim(--close-button --font-size); 111 align-self: start;
112 margin-top: calc(.5 * fn.dim(--pad));
113 margin-right: calc(.5 * fn.dim(--pad));
114 font-size: fn.dim(--close-button --font-size);
109 } 115 }
110 116
111 @include iro.bem-elem('prev-btn', 'next-btn') { 117 @include iro.bem-elem('nav-btn') {
112 position: absolute; 118 position: relative;
113 top: 50%; 119 align-self: center;
114 overflow: visible; 120 overflow: visible;
115 transform: translate(0, -50%); 121 font-size: fn.dim(--nav-button --font-size);
116 font-size: fn.dim(--nav-button --font-size);
117 122
118 &::after { 123 &::after {
119 content: ''; 124 content: '';
120 display: block; 125 display: block;
121 position: absolute; 126 position: absolute;
122 z-index: -1;
123 top: 50%; 127 top: 50%;
124 left: 50%; 128 left: 50%;
125 width: fn.dim(--nav-button --width); 129 width: fn.dim(--nav-button --width);
126 height: fn.dim(--nav-button --height); 130 height: fn.dim(--nav-button --height);
127 transform: translate(-50%, -50%); 131 transform: translate(-50%, -50%);
128 } 132 }
129 }
130
131 @include iro.bem-elem('prev-btn') {
132 left: fn.dim(--pad);
133 }
134 133
135 @include iro.bem-elem('next-btn') { 134 @include iro.bem-modifier('prev') {
136 right: fn.dim(--pad); 135 grid-area: prev;
136 margin-left: calc(.5 * fn.dim(--pad));
137 }
138
139 @include iro.bem-modifier('next') {
140 grid-area: next;
141 margin-right: calc(.5 * fn.dim(--pad));
142 }
137 } 143 }
138 } 144 }
139} 145}