/* TODO: Don't use CDN and serve as static files */
@ import url ( 'https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;700&display=swap' ) ;
: root {
--bg : # eaeaea ;
--fg : # 333 ;
--fg-lighter : # 444 ;
--bg-lighter : # f0f0f0 ;
--bg-dark : # ecedee ;
--bg-darker : # e4e5e7 ;
--bg-darker-2 : # d5d5d5 ;
--bg-darker-2-1 : # c8c8c8 ;
--bg-darker-3 : # c0c0c0 ;
--bg-darker-4 : # b8b8b8 ;
--accent-1 : # 278542 ;
--accent-1-fg : # 154d24 ;
--card-date : # 666 ;
--card-content : # 222 ;
--font-sf : 'Inter' , sans-serif ;
--font-weight-light : 300 ;
--font-weight-normal : 400 ;
--font-weight-medium : 500 ;
--font-weight-bold : 700 ;
--shadow-1 : 0 0 16px 0 # 00000018 ;
--text-input-bg : # fff ;
--text-input-readonly-bg : # e4e4e4 ;
--text-input-readonly-fg : # 777 ;
--accent-2-lighter : # 5cc969 ;
--accent-2 : # 4eaa59 ;
--accent-2-darker : # 2e974c ;
--accent-2-darkest : # 002d0d ;
--accent-mix-bg : # dae4db ;
}
* {
box-sizing : border-box ;
}
html ,
body {
margin : 0 ;
}
html {
height : 100 % ;
width : 100 % ;
}
body {
background : var ( --bg ) ;
color : var ( --fg ) ;
font-family : var ( --font-sf ) ;
font-size : 17px ;
font-weight : var ( --font-weight-normal ) ;
width : 100 % ;
min-height : 100 % ;
position : relative ;
}
. main {
max-width : 70ch ;
margin : 0 auto ;
padding-bottom : 8rem ;
display : flex ;
flex-direction : column ;
align-items : center ;
justify-content : center ;
gap : 3rem ;
}
nav {
padding : 1rem 0 ;
display : flex ;
flex-wrap : wrap ;
gap : 1rem ;
align-items : center ;
justify-content : center ;
font-weight : var ( --font-weight-medium ) ;
color : var ( --accent-1-fg ) ;
}
/* Tutti i link dentro la navbar sono speciali e non sembrano link */
nav . nav-element {
display : flex ;
width : 100 % ;
height : 100 % ;
align-items : center ;
justify-content : center ;
text-decoration : none ;
color : inherit ;
gap : 0 . 5rem ;
}
nav a : hover {
color : var ( --accent-1-fg ) ;
text-decoration : none ;
}
nav . nav-logo {
display : flex ;
align-items : center ;
justify-content : center ;
padding : 0 . 25rem 0 ;
background : var ( --bg-dark ) ;
border-radius : 4px ;
border : 1px solid var ( --bg-darker-2 ) ;
box-shadow : var ( --shadow-1 ) ;
transition : transform 150ms ease-in-out ;
}
nav . nav-logo : hover {
transform : scale ( 1 . 05 ) ;
}
nav . nav-logo img {
width : 150px ;
filter : drop-shadow ( 0 0 4px rgba ( 0 , 0 , 0 , 0 . 5 ) ) ;
}
nav . nav-main {
display : flex ;
/* grid-template-columns: repeat(5, 1fr) 1fr auto 1fr; */
background : var ( --bg-dark ) ;
border-radius : 4px ;
border : 1px solid var ( --bg-darker-2 ) ;
box-shadow : var ( --shadow-1 ) ;
z-index : 1 ;
}
nav . nav-item . filler {
width : 6rem ;
}
nav . nav-main . nav-element {
padding : 1rem 1 . 25rem ;
cursor : pointer ;
}
nav . nav-main . nav-button {
margin : 0 0 . 5rem ;
/* padding: 0.5rem; */
aspect-ratio : 1 ;
width : 2rem ;
height : 2rem ;
/* background: var(--bg-darker-2); */
display : flex ;
align-items : center ;
justify-content : center ;
border : 1px solid var ( --bg-darker-2 ) ;
border-radius : 1rem ;
cursor : pointer ;
}
nav . nav-main . nav-item {
display : flex ;
align-items : center ;
justify-content : center ;
background : var ( --bg-dark ) ;
user-select : none ;
z-index : 2 ;
}
nav . nav-main . nav-element : hover ,
nav . nav-main . nav-button : hover {
background : var ( --bg-darker ) ;
}
nav . nav-main . nav-item . dropdown {
position : relative ;
z-index : 1 ;
}
nav . nav-main . nav-item . dropdown . nav-items . nav-item : last-child {
border-bottom-left-radius : 4px ;
border-bottom-right-radius : 4px ;
}
nav . nav-main . nav-item . dropdown . name {
width : 100 % ;
height : 100 % ;
display : flex ;
align-items : center ;
justify-content : center ;
background : var ( --bg-dark ) ;
z-index : 3 ;
}
nav . nav-main . nav-item . dropdown . name : hover {
background : var ( --bg-darker ) ;
}
nav . nav-main . nav-item . dropdown . nav-items {
position : absolute ;
top : 100 % ;
width : 100 % ;
display : none ;
background : var ( --bg-dark ) ;
border-radius : 4px ;
border : 1px solid var ( --bg-darker-2 ) ;
box-shadow : var ( --shadow-1 ) ;
}
/ *
nav . nav-main . nav-item . dropdown . nav-items :: before {
position : absolute ;
content : '' ;
top : -2px ;
height : 2px ;
left : 0 ;
right : 0 ;
width : 100 % ;
background : var ( --bg-darker ) ;
} * /
nav . nav-main . nav-item . dropdown . name : hover + . nav-items ,
nav . nav-main . nav-item . dropdown . name + . nav-items : hover {
display : flex ;
flex-direction : column ;
}
/* .nav-main borders */
. nav-main > . nav-item : first-child {
border-top-left-radius : 4px ;
border-bottom-left-radius : 4px ;
}
. nav-main > . nav-item : last-child {
border-top-right-radius : 4px ;
border-bottom-right-radius : 4px ;
}
footer {
position : absolute ;
bottom : 0 ;
left : 50 % ;
height : 3rem ;
width : 80ch ;
transform : translate ( -50 % , 0 ) ;
background : var ( --bg-dark ) ;
border-radius : 4px ;
border : 1px solid var ( --bg-darker-2 ) ;
border-bottom : none ;
box-shadow : var ( --shadow-1 ) ;
display : flex ;
align-items : center ;
justify-content : center ;
border-top-left-radius : 4px ;
border-top-right-radius : 4px ;
}
/* Components */
section {
display : flex ;
flex-direction : column ;
align-items : center ;
}
. card-list {
display : flex ;
flex-direction : column ;
align-items : center ;
gap : 1rem ;
margin-top : 1rem ;
}
. card {
background : var ( --bg-dark ) ;
border-radius : 4px ;
border : 1px solid var ( --bg-darker-2 ) ;
box-shadow : var ( --shadow-1 ) ;
max-width : 60ch ;
padding : 1rem ;
display : flex ;
flex-direction : column ;
}
. card . title {
font-size : 22px ;
font-weight : var ( --font-weight-bold ) ;
padding-bottom : 0 . 5rem ;
}
. card . date {
font-size : 15px ;
color : var ( --card-date ) ;
padding-bottom : 0 . 5rem ;
}
. card . description {
font-weight : var ( --font-weight-light ) ;
color : var ( --card-content ) ;
}
. tags {
display : flex ;
flex-direction : row ;
gap : 0 0 . 5rem ;
padding-top : 0 . 5rem ;
}
. tags . tag {
height : 1 . 5rem ;
border-radius : calc ( 1 . 5rem / 2 ) ;
padding : 0 calc ( 1 . 5rem / 2 ) ;
background : var ( --bg-darker-2 ) ;
color : var ( --card-date ) ;
font-size : 15px ;
display : flex ;
align-items : center ;
justify-content : center ;
}
/* Typography */
h1 ,
h2 ,
h3 ,
h4 {
margin : 0 ;
margin-top : 1rem ;
margin-bottom : 0 . 5rem ;
font-weight : var ( --font-weight-light ) ;
}
h1 {
font-size : 2rem ;
}
h2 {
font-size : 1 . 5rem ;
}
h3 {
font-size : 1 . 35rem ;
}
h4 {
font-size : 1 . 2rem ;
font-weight : var ( --font-weight-bold ) ;
}
p ,
ul ,
ol ,
li {
margin : 0 ;
width : 70ch ;
max-width : 100 % ;
line-height : 1 . 8 ;
}
p + p {
padding-top : 0 . 5rem ;
}
ul ,
ol {
padding : 0 0 0 1 . 5rem ;
}
hr {
width : 50ch ;
height : 1px ;
margin : 0 ;
border : none ;
background-color : var ( --bg-darker-2 ) ;
}
sub ,
sup {
font-size : 12px ;
}
pre {
margin : 0 . 5rem 0 ;
background : var ( --bg-lighter ) ;
border : 1px solid # cbcbcb ;
border-radius : 2px ;
box-shadow : 0 2px 4px 0 # 00000033 ;
font-size : 90 % ;
display : flex ;
overflow-x : auto ;
}
pre > code {
display : block ;
margin : 0 . 25rem ;
}
p . center {
text-align : center ;
}
/* Controls */
. progress-bar {
background : var ( --bg-darker-2-1 ) ;
color : var ( --fg ) ;
border-radius : 4px ;
border : 1px solid var ( --bg-darker-2 ) ;
box-shadow : 0 0 8px 0 # 00000020 , inset 0 0 8px 0 # 00000030 ;
overflow : hidden ;
height : 2rem ;
}
. progress-bar . indicator {
border-radius : 4px ;
height : 100 % ;
background : linear-gradient ( to top , var ( --accent-1 ) , var ( --accent-2 ) ) ;
position : relative ;
overflow : hidden ;
animation : test-progressbar 2s ease-in-out infinite ;
}
@ keyframes test-progressbar {
0 % {
width : 0 % ;
}
100 % {
width : 100 % ;
}
}
. progress-bar . indicator :: after {
content : '' ;
position : absolute ;
inset : 0 ;
/ * background-size : 50px 50px ;
--highlight : rgba ( 255 , 255 , 255 , 0 . 1 ) ;
background-image : linear-gradient (
-45deg ,
transparent 0 % ,
var ( --highlight ) 5 % ,
var ( --highlight ) 25 % ,
transparent 30 % ,
transparent 50 % ,
var ( --highlight ) 55 % ,
var ( --highlight ) 75 % ,
transparent 80 % ,
transparent 100 %
) ;
animation : move 4s linear infinite ; * /
}
@ keyframes move {
0 % {
background-position : 0 0 ;
}
100 % {
background-position : 50px 50px ;
}
}
a : not ( . button ) {
color : var ( --accent-1-fg ) ;
font-weight : var ( --font-weight-medium ) ;
text-decoration : none ;
}
a : not ( . button ) : hover {
color : var ( --accent-1 ) ;
text-decoration : underline ;
}
a . button {
text-decoration : none ;
}
/* Buttons */
button ,
. button {
display : flex ;
font-family : var ( --font-sf ) ;
font-weight : var ( --font-weight-medium ) ;
font-size : 17px ;
/* gray variant #b3b3b3 */
border : 1px solid var ( --bg-darker-3 ) ;
/* gray variant #bfbfbf */
background : var ( --bg-darker-2 ) ;
/* gray variant #333333 */
color : var ( --fg ) ;
height : 2rem ;
border-radius : 4px ;
padding : 0 1rem ;
transition : all 100ms ease-in-out ;
box-shadow : 0 4px 8px 0 # 00000022 ;
cursor : pointer ;
align-items : center ;
justify-content : center ;
}
button : hover ,
. button : hover {
background : var ( --bg-darker-2-1 ) ;
box-shadow : 0 4px 8px 0 # 00000033 ;
}
button . primary ,
. button . primary {
border : 1px solid var ( --accent-2-darker ) ;
background : var ( --accent-2 ) ;
color : var ( --accent-2-darkest ) ;
}
button . primary : hover ,
. button . primary : hover {
background : var ( --accent-2-lighter ) ;
}
button . icon ,
. button . icon {
padding : 0 ;
width : 2rem ;
}
button . flat {
border : none ;
background : none ;
box-shadow : none ;
}
button . flat : hover {
background : var ( --bg-darker-2 ) ;
box-shadow : none ;
}
select {
font-family : var ( --font-sf ) ;
font-weight : var ( --font-weight-medium ) ;
font-size : 16px ;
/* gray variant #b3b3b3 */
border : 1px solid var ( --bg-darker-3 ) ;
/* gray variant #bfbfbf */
background : var ( --bg-darker-2 ) ;
/* gray variant #333333 */
color : var ( --fg ) ;
height : 2rem ;
border-radius : 4px ;
padding : 0 0 . 25rem ;
transition : all 100ms ease-in-out ;
box-shadow : 0 4px 8px 0 # 00000022 ;
cursor : pointer ;
}
/* Text Fields */
input [ type = 'text' ] ,
input [ type = 'file' ] ,
input [ type = 'password' ] ,
textarea {
border : none ;
background : none ;
height : 2 . 25rem ;
padding : 0 . 25rem 0 . 5rem ;
font-size : 17px ;
background : var ( --text-input-bg ) ;
color : var ( --fg ) ;
border-radius : 4px ;
border : 1px solid var ( --bg-darker-2 ) ;
box-shadow : 0 0 8px 0 # 00000020 ;
font-family : var ( --font-sf ) ;
font-size : 17px ;
font-weight : var ( --font-weight-normal ) ;
}
textarea {
height : auto ;
min-height : 2rem ;
padding : 0 . 5rem ;
line-height : 1 . 5 ;
}
input [ type = 'file' ] {
padding : 0 . 5rem ;
}
input [ type = 'password' ] {
font-family : caption ;
}
input [ type = 'text' ] : read-only ,
input [ type = 'password' ] : read-only {
background : var ( --text-input-readonly-bg ) ;
color : var ( --text-input-readonly-fg ) ;
box-shadow : 0 0 8px 0 # 00000010 ;
}
input [ type = 'text' ] . error ,
input [ type = 'password' ] . error {
background : # faa ;
color : # 311 ;
}
/* Better File Input */
. input-file {
display : flex ;
align-items : center ;
gap : 0 . 5rem ;
}
. input-file > input [ type = 'file' ] {
position : fixed ;
top : -100px ;
}
/* Compound Controls */
. compound {
display : flex ;
align-items : center ;
justify-content : center ;
border-radius : 4px ;
box-shadow : 0 0 8px 0 # 00000022 ;
border : 1px solid var ( --bg-darker-3 ) ;
background : var ( --bg-darker-2 ) ;
color : var ( --fg ) ;
}
. compound > . divider {
height : 2rem ;
width : 1px ;
background : var ( --bg-darker-4 ) ;
}
. compound . icon {
width : 2 . 5rem ;
display : flex ;
align-items : center ;
justify-content : center ;
}
. compound > select {
background : none ;
margin-right : 0 . 25rem ;
}
. compound > button ,
. compound > . button ,
. compound > input ,
. compound > select {
border : none ;
box-shadow : none ;
}
. compound > : not ( : first-child ) {
border-top-left-radius : 0 ;
border-bottom-left-radius : 0 ;
}
. compound > : not ( : last-child ) {
border-right : none ;
border-top-right-radius : 0 ;
border-bottom-right-radius : 0 ;
}
/* Forms */
form . field {
display : flex ;
flex-direction : column ;
align-items : center ;
justify-content : center ;
}
form . field-set {
display : grid ;
grid-template-columns : auto 1fr ;
grid-auto-rows : auto ;
gap : 0 . 5rem 1rem ;
padding : 1rem ;
}
form . field-set . fill {
grid-column : 1 / span 2 ;
}
form . field-set label {
grid-column : 1 / 2 ;
align-self : center ;
justify-self : end ;
font-weight : var ( --font-weight-medium ) ;
}
form . field-set input {
grid-column : 2 / 3 ;
}
/* Pages */
. page-home {
/* TODO: Sarebbe meglio se si riuscisse a capire come farlo senza */
overflow-x : hidden ;
}
. page-home . nav-logo {
display : none ;
}
. page-home . super {
position : absolute ;
left : 50vw ;
top : 50vh ;
width : 90vw ;
transform : translate ( -50 % , -50 % ) ;
display : flex ;
flex-direction : row ;
flex-wrap : wrap ;
align-items : center ;
justify-content : center ;
gap : 2vmin ;
}
. page-home canvas {
position : absolute ;
width : 100vw ;
height : 100vh ;
top : 0 ;
right : 0 ;
pointer-events : none ;
z-index : -1 ;
transition : opacity 1000ms ease-in-out ;
opacity : 1 ;
}
. page-home canvas . hide {
opacity : 0 ;
}
. page-home . super . block . text {
max-width : 40ch ;
font-size : 1 . 25rem ;
}
. page-home . super . block . text h1 {
font-weight : var ( --font-weight-medium ) ;
}
. page-home . super . block . text p {
font-weight : var ( --font-weight-light ) ;
}
. page-home . super . block . image {
display : flex ;
align-items : center ;
justify-content : center ;
}
. page-home . super . block . image img {
max-width : 80ch ;
max-height : 50vh ;
filter : drop-shadow ( 0 0 64px rgba ( 0 , 0 , 0 , 0 . 2 ) ) drop-shadow ( 0 0 8px rgba ( 0 , 0 , 0 , 0 . 35 ) ) ;
}
. page-home . main {
padding-top : calc ( 100vh - 6rem ) ;
}
. page-utenti . user-list {
display : flex ;
flex-direction : column ;
width : 100 % ;
}
. page-utenti . user-item {
flex-direction : row ;
width : 100 % ;
}
. page-utenti . user-item . icon {
width : 1 . 75rem ;
display : grid ;
place-content : center ;
}
. page-utenti . spinner {
display : flex ;
flex-direction : column ;
justify-content : center ;
align-items : center ;
height : 5rem ;
color : var ( --fg ) ;
animation : rotate 1s linear infinite ;
}
. page-storia . history-container {
--bar-size : 6px ;
display : flex ;
flex-direction : row ;
margin : 5rem 0 ;
position : relative ;
}
. page-storia . history-container . timeline-bar {
position : absolute ;
top : 0 ;
bottom : 0 ;
left : -2rem ;
width : var ( --bar-size ) ;
background : var ( --bg-darker-4 ) ;
}
. page-storia . history-container . timeline-bar :: before {
content : '' ;
position : absolute ;
top : -3rem ;
bottom : -3rem ;
left : 0 ;
border-left : var ( --bar-size ) dashed var ( --bg-darker-4 ) ;
}
. page-storia . history-container . events {
display : flex ;
flex-direction : column ;
gap : 1rem ;
}
. page-storia . history-container . events . event :: before {
--size : 1rem ;
content : '' ;
position : absolute ;
left : calc ( -2rem + var ( --bar-size ) / 2 - var ( --size ) / 2 ) ;
transform : translate ( 0 , 1rem ) ;
width : var ( --size ) ;
height : var ( --size ) ;
border-radius : 100 % ;
background : var ( --bg-darker-4 ) ;
}
. page-storia . history-container . events . event . title {
font-size : 22px ;
display : flex ;
align-items : center ;
gap : 0 . 25rem ;
}
. page-storia . history-container . events . event . date {
color : var ( --card-date ) ;
font-size : 18px ;
}
. page-storia . history-container . events . spacer {
height : calc ( var ( --size ) * 1rem ) ;
}
/* Appunti Condivisi */
. page-appunti-condivisi . main {
padding : 0 1rem inherit ;
max-width : 95ch ;
}
. page-appunti-condivisi . upload-region {
padding : 2rem ;
width : 30rem ;
height : 30vh ;
border : 3px dashed var ( --bg-darker-4 ) ;
border-radius : 0 . 5rem ;
display : flex ;
align-items : center ;
justify-content : center ;
flex-direction : column ;
gap : 1rem ;
transition : border-color 150ms ease-in-out , background-color 150ms ease-in-out ;
}
. page-appunti-condivisi . upload-region . dragging-over {
border-color : var ( --accent-1 ) ;
color : var ( --accent-1-fg ) ;
background : var ( --accent-mix-bg ) ;
}
/* Serve altrimenti l'evento dropleave viene emesso anche quando si passa da ".upload-region" ad uno dei figli, così invece rendiamo tutti i figli trasparenti agli eventi del mouse */
. page-appunti-condivisi . upload-region . dragging-over * {
pointer-events : none ;
}
. page-appunti-condivisi . upload-region . dragging-over . release-text {
display : flex ;
gap : 0 . 5rem ;
font-size : 22px ;
font-weight : var ( --font-weight-medium ) ;
}
. page-appunti-condivisi . upload-popup {
z-index : 100 ;
background-color : # 00000066 ;
position : fixed ;
inset : 0 ;
display : flex ;
flex-direction : column ;
align-items : center ;
/* backdrop-filter: blur(0.5rem); */
}
. page-appunti-condivisi . upload-popup . popup {
position : relative ;
top : 50 % ;
transform : translateY ( -50 % ) ;
background : var ( --bg-dark ) ;
border-radius : 4px ;
border : 1px solid var ( --bg-darker-2 ) ;
box-shadow : 0 0 32px # 00000033 ;
min-width : 40ch ;
max-width : 60ch ;
display : flex ;
flex-direction : column ;
gap : 1rem ;
}
. page-appunti-condivisi . upload-popup . popup . block {
padding : 0 1rem ;
}
. page-appunti-condivisi . upload-popup . popup . form {
padding : 0 1rem 1rem ;
gap : 1rem ;
}
. page-appunti-condivisi . popup . form . label {
min-width : 10ch ;
}
. form . progress-bytes {
display : flex ;
align-items : center ;
justify-content : center ;
font-size : 14px ;
}
. page-appunti-condivisi . upload-message {
font-size : 16px ;
color : # 666 ;
user-select : none ;
display : flex ;
align-items : center ;
gap : 0 . 5rem ;
}
. form . progress-and-action {
display : grid ;
grid-template-columns : 1fr auto ;
align-items : center ;
gap : 1rem ;
}
. page-appunti-condivisi . upload-popup . popup > . header {
background : var ( --bg-darker ) ;
border-bottom : 1px solid var ( --bg-darker-2 ) ;
color : var ( --fg-lighter ) ;
padding : 1rem ;
display : flex ;
justify-content : space-between ;
}
. page-appunti-condivisi . upload-popup . popup . title {
font-size : 20px ;
font-weight : var ( --font-weight-medium ) ;
display : flex ;
align-items : center ;
}
. page-appunti-condivisi . upload-popup . popup . title code {
font-size : 90 % ;
}
. page-appunti-condivisi # app {
display : flex ;
flex-direction : column ;
align-items : center ;
gap : 3rem ;
width : 100 % ;
}
. page-appunti-condivisi . table {
width : 100 % ;
display : grid ;
background : var ( --bg-dark ) ;
border-radius : 4px ;
border : 1px solid var ( --bg-darker-2 ) ;
box-shadow : var ( --shadow-1 ) ;
overflow : hidden ;
}
. page-appunti-condivisi . table . dispense {
grid-template-columns : auto 1fr minmax ( auto , 50ch ) auto ;
}
. page-appunti-condivisi . table . dispense . pending {
color : royalblue ;
}
. page-appunti-condivisi . table . dispense . rejected {
color : darkred ;
}
. page-appunti-condivisi . table > . header {
font-weight : var ( --font-weight-medium ) ;
background : var ( --bg-darker ) ;
border-bottom : 1px solid var ( --bg-darker-2 ) ;
}
. page-appunti-condivisi . table . separator {
grid-column : 1 / -1 ;
border-bottom : 1px solid var ( --bg-darker-2 ) ;
}
. page-appunti-condivisi . table . dispense . edit ,
. page-appunti-condivisi . table . dispense . name ,
. page-appunti-condivisi . table . dispense . tags ,
. page-appunti-condivisi . table . dispense . status {
padding : 1rem 0 1rem 1rem ;
display : flex ;
align-items : center ;
}
. page-appunti-condivisi . table . dispense . tags {
flex-wrap : wrap ;
gap : 0 . 5rem ;
}
. page-appunti-condivisi . table . dispense . status {
place-self : center ;
padding : 1rem 1 . 25rem 1rem 2rem ;
}
. page-appunti-condivisi . table . dispense . expanded {
grid-column : span 4 ;
display : grid ;
grid-template-columns : auto 1fr ;
}
. page-appunti-condivisi . table . dispense . expanded p {
width : 100 % ;
}
. page-appunti-condivisi . table . dispense . edit-container {
display : flex ;
flex-direction : column ;
gap : 1rem ;
padding : 1rem 1rem 1rem 0 ;
}
. page-appunti-condivisi . table . dispense . edit-container > . header {
display : flex ;
align-items : center ;
gap : 0 . 5rem ;
}
. page-appunti-condivisi . table . dispense . edit-container > . header code {
padding : 0 0 . 125rem ;
}
. page-appunti-condivisi . table . dispense . edit-container > . header . title {
font-size : 24px ;
font-weight : var ( --font-weight-medium ) ;
}
. page-appunti-condivisi . table . dispense . edit-container . stato-approvazione {
font-weight : var ( --font-weight-medium ) ;
display : flex ;
align-items : center ;
gap : 1rem ;
}
. page-appunti-condivisi . table . dispense . edit-container . stato-approvazione . approved {
color : var ( --accent-1 ) ;
}
. page-appunti-condivisi . table . dispense h1 {
margin : 0 ;
}
. page-appunti-condivisi . table . dispense . edit-close {
padding : 1rem ;
}
. page-appunti-condivisi . table . approvazioni {
grid-template-columns : auto auto 1fr auto auto ;
width : 80ch ;
max-width : 100 % ;
}
. page-appunti-condivisi . table . approvazioni . download ,
. page-appunti-condivisi . table . approvazioni . hash ,
. page-appunti-condivisi . table . approvazioni . title ,
. page-appunti-condivisi . table . approvazioni . owner ,
. page-appunti-condivisi . table . approvazioni . actions {
padding : 1rem ;
display : flex ;
align-items : center ;
}
. page-appunti-condivisi . table . approvazioni . hash {
padding-left : 0 ;
}
. page-appunti-condivisi . table . approvazioni . actions {
display : flex ;
gap : 1rem ;
justify-content : center ;
}
. page-appunti-condivisi . form {
display : grid ;
grid-template-columns : auto 1fr ;
gap : 1rem 2rem ;
align-items : center ;
}
. page-appunti-condivisi . form button : not ( . icon ) {
min-width : 6rem ;
}
. page-appunti-condivisi . form > . label {
height : 2rem ;
align-self : flex-start ;
display : flex ;
align-items : center ;
font-weight : var ( --font-weight-medium ) ;
}
. page-appunti-condivisi . form > textarea {
resize : vertical ;
overflow-y : hidden ;
}
. page-appunti-condivisi . form > . fill {
grid-column : span 2 ;
}
. page-appunti-condivisi . form > . right {
grid-column : span 2 ;
display : flex ;
justify-content : end ;
gap : 1rem ;
}
. page-appunti-condivisi . input-tags {
padding : 0 . 5rem ;
min-height : 2rem ;
font-size : 17px ;
background : var ( --text-input-bg ) ;
color : var ( --fg ) ;
border-radius : 4px ;
border : 1px solid var ( --bg-darker-2 ) ;
box-shadow : 0 0 8px 0 # 00000020 ;
display : flex ;
flex-wrap : wrap ;
gap : 0 . 5rem ;
align-items : center ;
}
. page-appunti-condivisi . input-tags . tag {
user-select : none ;
height : 1 . 5rem ;
border-radius : calc ( 1 . 5rem / 2 ) ;
padding : 0 calc ( 1 . 5rem / 2 ) ;
background : var ( --bg-darker-2 ) ;
color : var ( --card-date ) ;
font-size : 15px ;
display : flex ;
align-items : center ;
justify-content : center ;
gap : 0 . 25rem ;
}
. page-appunti-condivisi . input-tags . tag . remove {
cursor : pointer ;
}
. page-appunti-condivisi . input-tags . tag . remove : hover {
color : var ( --card-content ) ;
}
. page-appunti-condivisi . input-tags input [ type = 'text' ] {
box-shadow : none ;
border : none ;
background : none ;
height : 1 . 5rem ;
min-height : unset ;
max-width : 10rem ;
display : inline-block ;
}
/* Animazioni */
/* Pending hourglass with a bit of overshoot */
/ * @ keyframes pending-rotate {
0 % {
transform : rotate ( 0deg ) ;
}
25 % {
transform : rotate ( 0deg ) ;
}
30 % {
transform : rotate ( -5deg ) ;
}
45 % {
transform : rotate ( 190deg ) ;
}
50 % {
transform : rotate ( 180deg ) ;
}
60 % {
transform : rotate ( 175deg ) ;
}
75 % {
transform : rotate ( 185deg ) ;
}
95 % {
transform : rotate ( 370deg ) ;
}
100 % {
transform : rotate ( 360deg ) ;
}
} * /
@ keyframes pending-rotate {
0 % {
transform : rotate ( 0deg ) ;
}
30 % {
transform : rotate ( 0deg ) ;
}
50 % {
transform : rotate ( 180deg ) ;
}
80 % {
transform : rotate ( 180deg ) ;
}
100 % {
transform : rotate ( 360deg ) ;
}
}
@ keyframes rotate {
0 % {
transform : rotate ( 0deg ) ;
}
100 % {
transform : rotate ( 360deg ) ;
}
}
. search {
margin : 2rem 0 ;
display : flex ;
flex-direction : row ;
gap : 1rem ;
}
. search input [ type = 'text' ] {
width : 50ch ;
height : 2 . 5rem ;
}
. search button {
width : 2 . 5rem ;
height : 2 . 5rem ;
}
/* Rendered Markdown */
. news-content p {
margin : 0 . 5rem 0 ;
}
. news-content {
display : block ;
}
. news-content h1 {
text-align : center ;
}
. news-content img {
display : block ;
margin : 1rem auto ;
background : var ( --bg-dark ) ;
border-radius : 4px ;
border : 1px solid var ( --bg-darker-2 ) ;
box-shadow : 0 2px 8px 0 # 00000033 ;
}
. news-content . date {
font-size : 15px ;
color : var ( --card-date ) ;
display : flex ;
justify-content : center ;
}
. news-content . tags ,
. news-content . date {
justify-content : center ;
}
. news-content table {
margin : 1rem auto ;
}
/* Math */
. katex-display {
margin : 1rem 0 ;
font-size : 105 % ;
}
/* Tables */
table {
border-collapse : collapse ;
}
table td ,
table th {
padding : 0 . 5rem ;
}
table td : not ( : first-child ) ,
table th : not ( : first-child ) {
border-left : 1px solid var ( --bg-darker-3 ) ;
}
table td {
border-top : 1px solid var ( --bg-darker-3 ) ;
}
table tbody tr : hover {
background : var ( --bg-darker ) ;
}
/* Utils */
. flex {
display : flex ;
align-items : center ;
}
. flex . col {
flex-direction : column ;
}
. flex . gap-1 {
gap : 1rem ;
}
. fill-h {
width : 100 % ;
}