better use of space

This commit is contained in:
Víctor Losada Hernández
2026-09-09 20:56:47 +02:00
parent 4e5480b5dd
commit 43ba216bfa
2 changed files with 546 additions and 647 deletions
@@ -9,7 +9,7 @@
overflow : hidden;
break-inside : avoid;
-webkit-column-break-inside : avoid;
page-break-inside: avoid;
break-inside : avoid;
.thumbnail {
position : absolute;
top : 0;
@@ -31,12 +31,8 @@
position : initial;
bottom : 2px;
font-size : 1.2em;
& > span {
line-height: 1.5em;
}
a {
color: inherit;
}
& > span { line-height : 1.5em; }
a { color : inherit; }
}
.brewTags span {
display : inline-block;
@@ -45,8 +41,8 @@
font-weight : bold;
white-space : nowrap;
cursor : pointer;
background-color: #c8ac6e3b;
border: 1px solid #c8ac6e;
background-color : #C8AC6E3B;
border : 1px solid #C8AC6E;
border-color : currentColor;
border-radius : 4px;
&::before {
@@ -56,36 +52,26 @@
}
&.type {
color : #008000;
background-color: #0080003b;
&::before {
content: '\f0ad';
}
background-color : #0080003B;
&::before { content : '\f0ad'; }
}
&.group {
color : #000000;
background-color: #5050503b;
&::before {
content: '\f500';
}
background-color : #5050503B;
&::before { content : '\f500'; }
}
&.meta {
color : #000080;
background-color: #0000803b;
&::before {
content: '\f05a';
}
background-color : #0000803B;
&::before { content : '\f05a'; }
}
&.system {
color : #800000;
background-color: #8000003b;
&::before {
content: '\f518';
background-color : #8000003B;
&::before { content : '\f518'; }
}
}
}
&:nth-child(2n + 1) {
margin-right: 0px;
}
&:nth-child(2n + 1) { margin-right : 0px; }
.links {
text-align : center;
background-color : fade(black, 60%);
@@ -93,31 +79,27 @@
button {
.animate(opacity);
display : block;
width : 100%;
margin : 8px 0px;
font-size : 1.3em;
color : white;
text-decoration : unset;
opacity : 0.6;
width: 100%;
&:hover {
opacity: 1;
}
i {
cursor: pointer;
}
&:hover { opacity : 1; }
i { cursor : pointer; }
}
}
.googleDriveIcon {
height : 18px;
padding : 0px;
margin : -5px;
height: 18px;
}
.homebreweryIcon {
position : relative;
padding: 0px;
top : 5px;
left : -7.5px;
height : 18px;
padding : 0px;
}
}
@@ -131,16 +113,16 @@
padding-right : 15px;
overflow : hidden;
vertical-align : top;
background-color: #cab2802e;
background-color : #CAB2802E;
background-image : url('https://ik.imagekit.io/5eCleric/background%20note.png');
background-size : cover;
border: 1px solid #c9ad6a;
border : 1px solid #C9AD6A;
border-radius : 5px;
box-shadow : 0px 4px 5px 0px #333333;
isolation : isolate;
break-inside : avoid;
-webkit-column-break-inside : avoid;
page-break-inside: avoid;
isolation: isolate;
break-inside : avoid;
.thumbnail {
position : absolute;
top : 0;
@@ -179,8 +161,8 @@
font-weight : bold;
white-space : nowrap;
cursor : pointer;
background-color: #c8ac6e3b;
border: 1px solid #c8ac6e;
background-color : #C8AC6E3B;
border : 1px solid #C8AC6E;
border-color : currentColor;
border-radius : 4px;
&::before {
@@ -190,38 +172,28 @@
}
&.type {
color : #008000;
background-color: #0080003b;
&::before {
content: '\f0ad';
}
background-color : #0080003B;
&::before { content : '\f0ad'; }
}
&.group {
color : #000000;
background-color: #5050503b;
&::before {
content: '\f500';
}
background-color : #5050503B;
&::before { content : '\f500'; }
}
&.meta {
color : #000080;
background-color: #0000803b;
&::before {
content: '\f05a';
}
background-color : #0000803B;
&::before { content : '\f05a'; }
}
&.system {
color : #800000;
background-color: #8000003b;
&::before {
content: '\f518';
}
background-color : #8000003B;
&::before { content : '\f518'; }
}
}
&:hover,
&:focus-within {
.links {
opacity: 1;
}
.links { opacity : 1; }
}
.links {
.animate(opacity);
@@ -237,83 +209,75 @@
button {
.animate(opacity);
display : block;
width : 100%;
margin : 8px 0px;
font-size : 1.3em;
color : white;
text-decoration : unset;
opacity : 0.6;
width: 100%;
&:hover {
opacity: 1;
}
i {
cursor: pointer;
}
&:hover { opacity : 1; }
i { cursor : pointer; }
}
}
.googleDriveIcon {
height : 18px;
padding : 0px;
margin : -5px;
height: 18px;
}
.homebreweryIcon {
position : relative;
padding: 0px;
top : 5px;
left : -7.5px;
height : 18px;
padding : 0px;
}
}
.list > .brewItem {
height: 50px;
min-height: unset;
width: 100%;
display : grid;
grid-template-columns : 2fr 3fr 1fr;
align-items : center;
color: rgb(2, 2, 2);
background: #efefef;
width : 100%;
height : 50px;
min-height : unset;
overflow : visible;
font-size : 12px;
color : rgb(2, 2, 2);
background : #EFEFEF;
.text {
min-height: unset;
width: 100%;
padding-inline: 10px;
height: 100%;
display : grid;
align-content : center;
width : 100%;
height : 100%;
min-height : unset;
padding-inline : 10px;
h2 {
text-overflow: ellipsis;
overflow: hidden;
white-space: nowrap;
font-size: 20px;
font-weight: 900;
align-content : center;
height : 100%;
min-height : 1.4em;
align-content: center;
overflow : hidden;
text-overflow : ellipsis;
font-size : 20px;
font-weight : 900;
vertical-align : middle;
white-space : nowrap;
}
.description {
display: none;
}
.description { display : none; }
}
.info {
width: clamp(400px, 100%, 650px);
display : grid;
grid-template-areas : 'tags authors views pages update storage';
justify-content: end;
grid-template-columns : 2fr 1.5fr 0.7fr 0.6fr 1.5fr 20px;
align-content : space-around;
align-items : center;
grid-template-columns: 2fr 1.5fr 0.7fr 0.6fr 1.5fr 20px;
br {
display: none;
}
justify-content : end;
width : clamp(400px, 100%, 650px);
br { display : none; }
.brewTags {
display : inline-block;
grid-area : tags;
@@ -321,18 +285,16 @@
}
.brewAuthors {
display : inline-block;
display : -webkit-box;
grid-area : authors;
height: fit-content;
width : 150px;
height : fit-content;
overflow : hidden;
text-overflow : ellipsis;
display: -webkit-box;
-webkit-line-clamp : 3;
-webkit-box-orient : vertical;
&:has(a:only-of-type) {
width: fit-content;
}
&:has(a:only-of-type) { width : fit-content; }
}
.lastViewed {
@@ -357,127 +319,111 @@
.brewTags:has(span:nth-of-type(4)) {
position : relative;
overflow: hidden;
display : flex;
flex-wrap : wrap;
overflow : hidden;
span:nth-of-type(n + 2) {
display: none;
}
span:nth-of-type(n + 2) { display : none; }
&:hover {
overflow: visible;
position : absolute;
top : 0;
background: #707070;
height: max-content;
z-index : 100;
width : min-content;
height : max-content;
padding : 10px;
overflow : visible;
background : #707070;
span:nth-of-type(n + 4) {
display: block;
}
span:nth-of-type(n + 4) { display : block; }
&:after {
&::after {
position : absolute;
top : 48px;
right : 0;
left: 0;
bottom : 0;
content: '';
left : 0;
z-index : -1;
display : block;
height : calc(100% - 48px);
content : '';
background : #707070;
border-inline : 1px solid gold;
border-bottom : 1px solid gold;
border-bottom-left-radius: 5px;
border-bottom-right-radius : 5px;
z-index: -1;
border-bottom-left-radius : 5px;
}
}
}
}
.links {
opacity: 1;
background: none;
position : relative;
display : flex;
align-items : center;
justify-content : space-evenly;
width : 100%;
align-items: center;
height : 100%;
background : none;
opacity : 1;
> a {
opacity : 0.8;
&:hover {
opacity: 1;
}
&:hover { opacity : 1; }
}
.editLink {
color: @green;
}
.deleteLink {
color: @red;
}
.editLink { color : @green; }
.deleteLink { color : @red; }
.shareLink {
color: deepskyblue;
}
.shareLink { color : deepskyblue; }
.downloadLink {
color: coral;
}
.downloadLink { color : coral; }
}
}
.card > .brewItem {
background-color: grey;
background-image: url('@themes/assets/naturalCritLogoBlack.svg');
background-size: 60%;
background-position: center 20%;
background-repeat: no-repeat;
background-blend-mode: soft-light;
width: 300px;
height: 400px;
border: 1px solid;
margin: 10px;
border-radius: 10px;
padding: 10px;
padding-top: 100px;
padding-bottom: 50px;
position : relative;
display : flex;
flex-direction : column;
justify-content : flex-end;
isolation: isolate;
position: relative;
color: white;
width : 300px;
height : 400px;
padding : 10px;
padding-top : 100px;
padding-bottom : 50px;
margin : 10px;
font-size : 13px;
color : white;
background-color : grey;
background-image : url('@themes/assets/naturalCritLogoBlack.svg');
background-repeat : no-repeat;
background-position : center 20%;
background-size : 60%;
border : 1px solid;
border-radius : 10px;
background-blend-mode : soft-light;
isolation : isolate;
&::before {
display: block;
content: '';
height: 50%;
position : absolute;
right : 0;
bottom : 0;
left : 0;
right: 0;
background-image: linear-gradient(0deg, #777f 0, #7770 90%);
z-index : -1;
display : block;
height : 50%;
content : '';
background-image : linear-gradient(0deg, #777777FF 0, #77777700 90%);
transition : height 0.2s;
}
&:hover {
&::before {
height : 100%;
background-image: linear-gradient(0deg, #777f 0, #777f 42%, #7770 55%);
}
.text .description {
height: fit-content;
background-image : linear-gradient(0deg, #777777FF 0, #777777FF 42%, #77777700 55%);
}
.text .description { height : fit-content; }
}
.thumbnail {
@@ -496,8 +442,8 @@
filter : drop-shadow(0 1px 4px black);
h2 {
font-weight: 900;
font-size : 1.2em;
font-weight : 900;
}
.description {
@@ -508,50 +454,35 @@
}
.info {
filter: drop-shadow(0 1px 2px black);
height: 130px;
display : grid;
grid-template-areas:
'tags tags tags'
grid-template-areas : 'tags tags tags'
'authors authors authors'
'pages views views'
'update update storage';
height : 130px;
filter : drop-shadow(0 1px 2px black);
.brewTags {
color: black;
grid-area : tags;
color : black;
i {
color: white;
}
> span {
background: hsl(from currentColor h 20% 80%);
}
}
.brewAuthors {
grid-area: authors;
}
.brewPages {
grid-area: pages;
}
.lastViewed {
grid-area: views;
}
.lastUpdated {
grid-area: update;
}
.storage {
grid-area: storage;
i { color : white; }
> span { background : hsl(from currentColor h 20% 80%); }
}
.brewAuthors { grid-area : authors; }
.brewPages { grid-area : pages; }
.lastViewed { grid-area : views; }
.lastUpdated { grid-area : update; }
.storage { grid-area : storage; }
}
.links {
position : absolute;
right : 0;
bottom : 0;
left : 0;
right: 0;
height: 40px;
display : flex;
height : 40px;
}
}
@@ -561,23 +492,17 @@
.brewItem:not(.detailsOpen) {
grid-template-columns : 3fr 2.5fr 1fr;
.info {
width: clamp(200px, 100%, 650px);
grid-template-columns: 2fr 1fr 20px;
grid-template-areas : 'tags update storage';
grid-template-columns : 2fr 1fr 20px;
width : clamp(200px, 100%, 650px);
}
.brewPages,
.lastViewed,
.brewAuthors {
display: none;
}
}
.brewItem {
transition: height 0.2s;
}
.detailsOpen {
height: 70px;
.brewAuthors { display : none; }
}
.brewItem { transition : height 0.2s; }
.detailsOpen { height : 70px; }
}
}
}
@@ -588,36 +513,33 @@
.brewItem:not(.detailsOpen) {
grid-template-columns : 3fr 2fr 1fr;
.info {
width: clamp(200px, 100%, 650px);
grid-template-columns: 1fr 20px;
grid-template-areas : 'tags storage';
grid-template-columns : 1fr 20px;
width : clamp(200px, 100%, 650px);
}
.brewPages,
.lastViewed,
.brewAuthors,
.lastUpdated {
display: none;
}
.lastUpdated { display : none; }
}
.detailsOpen {
grid-template-columns : 3fr 2fr 1fr;
.info {
width: clamp(200px, 100%, 650px);
display : grid;
grid-template-columns: 2fr 1fr 1fr;
grid-template-rows: 1fr 1fr;
grid-template-areas:
'tags views pages'
grid-template-areas : 'tags views pages'
'authors update storage';
grid-template-rows : 1fr 1fr;
grid-template-columns : 2fr 1fr 1fr;
width : clamp(200px, 100%, 650px);
}
.lastUpdated {
width : 100px;
overflow : hidden;
text-overflow : ellipsis;
white-space: nowrap;
word-break : break-all;
white-space : nowrap;
}
}
}
@@ -629,61 +551,54 @@
&.list {
.brewItem:not(.detailsOpen) {
.info {
width: clamp(200px, 100%, 650px);
grid-template-columns: 1fr;
grid-template-areas : 'tags';
grid-template-columns : 1fr;
width : clamp(200px, 100%, 650px);
}
.brewPages,
.lastViewed,
.brewAuthors,
.lastUpdated,
.storage {
display: none;
}
.storage { display : none; }
}
.brewItem {
transition: height 0.2s;
}
.brewItem { transition : height 0.2s; }
.detailsOpen {
height: 100px;
padding: 5px;
display : grid;
grid-template-columns : 3fr 3fr 30px;
height : 100px;
padding : 5px;
.text {
height : 100%;
padding : 0;
h2 {
display : -webkit-box;
height : fit-content;
white-space: wrap;
overflow : hidden;
text-overflow : ellipsis;
display: -webkit-box;
-webkit-line-clamp : 3;
white-space : wrap;
-webkit-box-orient : vertical;
}
}
.info {
height: 100%;
width: 100%;
display : grid;
grid-template-columns: 2fr 1fr 1fr 20px;
grid-template-areas:
'tags pages views views'
grid-template-areas : 'tags pages views views'
'authors update update storage';
grid-template-columns : 2fr 1fr 1fr 20px;
width : 100%;
height : 100%;
}
.links {
display : flex;
flex-direction : column;
gap : 5px;
a,
button {
margin: 0;
}
button { margin : 0; }
}
}
}
@@ -695,9 +610,7 @@
&.list {
.brewItem:not(.detailsOpen) {
grid-template-columns : 3fr 1fr;
.info {
display: none;
}
.info { display : none; }
}
.detailsOpen {
grid-template-rows : 1fr 2fr;
@@ -708,8 +621,8 @@
width : 100px;
overflow : hidden;
text-overflow : ellipsis;
white-space: nowrap;
word-break : break-all;
white-space : nowrap;
}
}
}
@@ -20,19 +20,20 @@
.listPage {
.content {
z-index : 1;
padding: clamp(20px, 5vh, 200px) 10vw;
padding-block : clamp(20px, 5vh, 200px);
padding-inline : clamp(20px, 20vw, 200px);
.noBrews {
margin : 10px 0px;
font-size : 1.3em;
font-style : italic;
}
.brewCollection {
width: fit-content;
h1 {
width : fit-content;
margin-bottom : 20px;
font-size : 25px;
color: #dddddd;
color : #DDDDDD;
&.active::before,
&.inactive::before {
@@ -43,24 +44,20 @@
}
&.active {
color : white;
&::before { content : '\f107'; }
}
&.active::before {
content: '\f107';
}
&.inactive::before {
content: '\f105';
}
}
h1:hover {
cursor: pointer;
&.inactive::before { content : '\f105'; }
}
h1:hover { cursor : pointer; }
.brewGroup {
margin-bottom : 20px;
&.grid {
display : flex;
flex-wrap : wrap;
justify-content: center;
gap : 20px;
justify-content : center;
width : fit-content;
min-width : 200px;
}
@@ -70,13 +67,22 @@
gap : 2px;
}
&.card {
display: flex;
flex-wrap: wrap;
--columns : 4;
display : grid;
grid-template-columns : repeat(var(--columns), 1fr);
column-gap : 40px;
justify-content: center;
justify-items : center;
h1 {
position: absolute;
@media screen and (max-width : 1700px) {--columns : 3;}
@media screen and (max-width : 1400px) {--columns : 2;}
@media screen and (max-width : 900px) {--columns : 1;}
h1 { position : absolute; }
&:not(:has(.brewItem:last-child:nth-child(3n))) {
.brewItem:last-child {
margin-right : auto;
background : green;
}
}
}
}
@@ -85,25 +91,25 @@
.listPageNav {
position : relative;
width: 100%;
height: fit-content;
display : flex;
flex-wrap : wrap;
row-gap : 10px;
column-gap : 20px;
align-items : center;
justify-content : center;
background: #555;
column-gap: 20px;
row-gap: 10px;
border-top: 1px solid #666;
border-bottom: 1px solid #666;
width : 100%;
height : fit-content;
font-family : 'Open Sans', sans-serif;
color : white;
row-rule: 1px solid #666;
background : #555555;
border-top : 1px solid #666666;
border-bottom : 1px solid #666666;
row-rule : 1px solid #666666;
> div {
width : fit-content;
padding-inline: 10px;
height : 30px;
padding-inline : 10px;
}
.sort-container {
@@ -127,24 +133,20 @@
align-items : center;
height : 100%;
padding : 0 8px;
color: #cccccc;
color : #CCCCCC;
&:hover {
background-color: #444444;
}
&:hover { background-color : #444444; }
&.active {
font-weight : bold;
color: #dddddd;
color : #DDDDDD;
background-color : #333333;
button {
height : 100%;
font-weight : 800;
color : white;
& + .sortDir {
padding-left: 5px;
}
& + .sortDir { padding-left : 5px; }
}
}
}
@@ -153,7 +155,7 @@
padding : 0;
font-size : 11px;
font-weight : normal;
color: #cccccc;
color : #CCCCCC;
text-transform : uppercase;
background-color : transparent;
}
@@ -164,9 +166,7 @@
place-items : center;
font-size : 11px;
background-color : transparent !important;
i {
padding-right: 5px;
}
i { padding-right : 5px; }
}
.tags-container {
display : flex;
@@ -181,7 +181,7 @@
font-family : 'Open Sans', sans-serif;
font-size : 11px;
font-weight : bold;
color: #dfdfdf;
color : #DFDFDF;
cursor : pointer;
border : 1px solid;
border-radius : 3px;
@@ -198,31 +198,23 @@
}
&.type {
background-color : #008000;
border-color: #00a000;
&::before {
content: '\f0ad';
}
border-color : #00A000;
&::before { content : '\f0ad'; }
}
&.group {
background-color : #505050;
border-color : #000000;
&::before {
content: '\f500';
}
&::before { content : '\f500'; }
}
&.meta {
background-color : #000080;
border-color: #0000a0;
&::before {
content: '\f05a';
}
border-color : #0000A0;
&::before { content : '\f05a'; }
}
&.system {
background-color : #800000;
border-color: #a00000;
&::before {
content: '\f518';
}
border-color : #A00000;
&::before { content : '\f518'; }
}
}
}
@@ -236,17 +228,11 @@
justify-content : center;
text-align : center;
input[type='radio'] {
display: none;
}
input[type='radio'] { display : none; }
i {
transition: color 0.2s;
}
i { transition : color 0.2s; }
input:checked + i {
color: @blue;
}
input:checked + i { color : @blue; }
}
}
}