eorzea-songbook/static/style.css

626 lines
11 KiB
CSS

:root{
--block: lch(90% 25 85);
--box: lch(100% 0 90);
--back: radial-gradient(white 50%, lch(95% 10 225) );
--search-back: white;
--thick-border: lch(80% 45 85);
--thin-border: lch(40% 45 85);
--pressed: lch(65% 40 75);
--pressed-text: lch(100% 25 85);
--text: black;
--light-text: gray;
--text-shadow: black;
font-family: "Zen Maru Gothic", sans-serif;
color: var(--text);
}
@media (prefers-color-scheme: dark) {
:root{
--block: lch(20% 0 75);
--box: lch(40% 2.5 75);
--back: radial-gradient(lch(20% 0 75), black );
--search-back: lch(35% 0 75);
--thick-border: lch(60% 10 75);
--thin-border: lch(60% 10 75);
--pressed: lch(5% 0 75);
--pressed-text: lch(95% 5 75);
--text: lch(95% 5 75);
--box-text: white;
--light-text: lch(65% 5 75);
--light-box-text: lch(85% 5 75);
}
}
h1, h2, h3, h4, h5, h6{
font-family: "Shippori Mincho", serif;
margin: 0;
}
body{
display: flex; flex-direction: column;
margin: 0;
background: var(--back);
background-attachment: fixed;
height: 100vh;
}
a{
color: var(--text);
}
span{
color: var(--text);
}
/* HEADER */
header{
background: var(--block);
margin: 0;
border-style: outset; border-top: 0; border-left: 0; border-right: 0; border-color: var(--thick-border);
}
.top-buttons{
display: flex; flex: auto; justify-content: center;
padding: .6rem;
column-gap: .6rem;
max-height: fit-content;
max-width: 64rem;
margin: auto;
}
.nav-button{
display: flex; flex-direction: column; justify-content: center;
background-color: var(--block);
border-style: outset; border-color: var(--thick-border); border-radius: 1.2rem; border-width: 0.3rem;
position: relative;
flex: auto;
}
.nav-button a{
text-decoration: none;
}
.nav-button li{
list-style: none;
}
.nav-text{
color: var(--text);
text-align: center;
}
.nav-text::before{
content: "-"
}
.nav-text::after{
content: "-"
}
.nav-button img{
display: block;
margin: auto;
}
.nav-button.home{
flex: none;
}
.nav-button.home::before{
content: "";
position: absolute;
bottom: 0;
right: 0;
border-style: outset; border-color: var(--thick-border); border-radius: 1.2rem; border-width: 0.3rem;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
width: 100%;
height: 100%;
pointer-events: none;
}
/* HOME BUTTON */
.home-main{
margin-top: clamp(0rem, calc(8vw - 8rem), 2.4rem); margin-bottom: auto;
background: var(--block);
}
.home-title{
padding: 4vh;
text-align: center;
border-style: outset; border-color: var(--thick-border);
background: radial-gradient(lch(35% 90 50) 50%, lch(10% 90 50));
position: relative;
}
.home-title h1{
text-shadow: 1px 1px 2px var(--text-shadow);
color: lch(90% 25 85);
}
.home-title h1::before{
content: "-"
}
.home-title h1::after{
content: "-"
}
.home-title h3{
margin-top: 1.2rem;
color: lch(90% 25 85);
}
.home-title p{
position: absolute;
right: .3rem;
bottom: .3rem;
font-size: small;
margin: 0;
color: lch(80% 50 50);
}
.home-body{
padding-top: 1.2rem;
}
.home-body h2{
text-align: center;
}
.home-body p{
margin-left: 1.2rem; margin-right: 1.2rem; margin-top: .6rem;
text-align: center;
}
.home-nav{
display: flex; gap: 1.2rem;
border-style: solid; border-width: 1px; border-color: var(--thin-border); border-left: 0; border-top: 0; border-right: 0;
margin: 1.2rem; margin-bottom: 0;
padding-bottom: 1.2rem;
}
.home-button{
display: flex; flex-direction: column; list-style: none; justify-content: center; align-items: center;
flex: auto;
position: relative;
border-style: outset; border-color: var(--thick-border); border-radius: 1.2rem;
text-decoration: none;
background-color: var(--block);
padding-top: 1.2rem; padding-bottom: 1.2rem;
}
/* SEARCH BAR */
.search-bar{
display: flex; flex-shrink: 0; flex-direction: column; justify-content: center; align-items: center;
max-width: 64rem;
width: 100%;
height: 3.6rem;
margin-left: auto; margin-right: auto;
background-color: var(--block);
border-style: solid; border-top: 0; border-left: 0; border-right: 0; border-color: var(--thin-border); border-width: 1px;
}
.search-items{
position: relative;
height: 2.4rem;
width: 80%;
}
.search-items input{
/* all:unset; */
font: unset;
color: unset;
background-color: var(--search-back);
width: 100%;
height: 2.4rem;
border-style: solid; border-color: var(--thin-border); border-width: 1px;
}
/* SEARCH RESULTS */
#search-results{
display: flex; flex-direction: column;
width: 100%;
}
#search-results h2{
visibility: collapse;
}
#search-results ul{
background-color: var(--search-back);
padding-left: 0;
margin-top: 0;
list-style: none;
z-index: 1;
border-style: solid; border-color: var(--thin-border); border-width: 1px; border-top: 0; border-bottom: 0;
}
#search-results li{
display: flex; align-items: center;
min-height: 2.4rem;
border-style: solid; border-width: 1px; border-color: var(--thin-border); border-left: 0; border-top: 0; border-right: 0;
}
#search-results a{
text-decoration: none;
}
.search-icon{
min-width: 2.6rem;
}
.search-icon img{
margin-left: auto;
height: 1.8rem;
display: block;
}
.search-icon.album img{
display: block;
height: 1.2rem;
margin-left: auto;
}
.search-type{
font-size: small;
color: var(--light-box-text);
margin-left: .3rem;
min-width: 2.6rem;
}
/* MAIN PAGE */
main{
background-color: var(--block);
max-width: 64rem;
width: 100%;
margin-left: auto; margin-right: auto;
}
main ul{
display: flex; flex-direction: column;
margin: 0;
padding-left: 0;
}
/* FOOTER */
footer{
background: linear-gradient(90deg, lch(10% 90 50), lch(35% 90 50) 25%, lch(35% 90 50) 75%, lch(10% 90 50));
width: 100%;
padding: 0;
margin-top: auto;
}
.footer-content{
display: flex; justify-content: center; flex-wrap: wrap; align-items: center;
max-width: 64rem;
margin-left: auto; margin-right: auto; margin-bottom: .3rem; margin-top: .3rem;
}
.footer-content span{
font-size: calc(.7rem + .3vw);
margin-left: 1.2rem; margin-right: 1.2rem;
text-align: center;
color: lch(90% 25 85);
}
.footer-content a{
color: lch(90% 25 85);
}
.copyright{
display: flex;
flex-wrap: wrap;
column-gap: .3em;
justify-content: center;
margin-left: 1.2rem; margin-right: 1.2rem;
}
.copyright span{
margin: 0;
text-align: center;
}
/* INDEX LISTS */
.album-list{
display: flex; flex-direction: column;
}
.category-list{
display: flex; flex-wrap: wrap; align-content: flex-start; flex-basis: 51%;
justify-content: center;
}
.album-icon{
display: inline-block;
align-self: center;
}
/* INDEX BLOCKS */
.sort-box{
margin-top: 1.2rem; margin-left: 1.2rem; margin-right: 1.2rem;
}
.sort-box.album:not(:first-child){
margin-top: 2.4rem;
}
.sort-box:last-child{
margin-bottom: 1.2rem;
}
.sort-box.category{
width: 29.6rem;
background: var(--block);
}
.sort-header{
border-style: solid; border-top: 0; border-left: 0; border-right: 0; border-width: 1px; border-color: var(--thin-border);
}
.sort-header.album{
display: flex; align-items: center;
font-size: calc(.7rem + .4vw);
background: var(--block);
position: sticky;
top: 0;
gap: .6rem;
}
.date{
margin-top: .6rem; margin-left: 2.4rem;
font-size: small;
}
/* INDEX ENTRIES */
.entry-box{
display: flex; align-items: center;
list-style: none;
min-height: 1.8rem;
background-color: var(--box);
border-radius: 1.2rem;
margin-top: .6rem;
text-decoration: none;
}
.entry-box.song{
margin-bottom: .6rem;
}
.entry-box.song.empty{
margin-top: 0; margin-bottom: 0; margin-right: 2.4rem;
background: none;
}
.entry-box li{
display: flex; flex: auto; flex-wrap: nowrap; align-items: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
height: 1.8rem;
}
.entry-box.motif li{
justify-content: center;
flex-grow: 0;
}
.entry-box.song li{
justify-content: left;
}
.entry-box.motif::before{
content: "";
max-width: 3.6rem;
flex-grow: 1;
visibility: hidden;
margin-right: auto;
}
.motif-name{
text-align: center;
color: var(--box-text);
}
.track-number{
min-width: 2.4rem;
margin-left: .6rem;
color: var(--box-text);
}
.track-name{
color: var(--box-text);
}
.track-name-jp{
margin-left: 2.4rem;
color: var(--light-box-text);
}
.empty{
color: var(--light-text);
}
.clip-count{
color: var(--box-text);
display: inline;
text-align: left;
min-width: 2.4rem;
margin-left: .24rem;
}
.count-icon{
width: 1.2rem; height: 1.2rem;
margin-left: auto;
display: block;
}
/* SONG INDEX ALBUM DROPDOWNS */
.sort-list.album{
display: none;
}
.sort-header.album > *{
cursor: pointer;
pointer-events: none;
}
.sort-header.album::after{
content: "▼";
margin-left: auto;
color: var(--thin-border);
}
.sort-header.album.open::after{
content: "▲";
}
.sort-header.album.open ~ .sort-list.album{
display:initial
}
/* ENTRY PAGE TITLES */
.title-box{
margin: 1.2rem; margin-bottom: 1.2rem;
background: var(--box);
}
.eng-title{
display: flex; align-items: center;
color: var(--box-text);
}
.title-box img{
margin-left: .6rem;
}
.title-box h1{
margin-left: .6rem;
min-width: 0;
font-size: calc(1.2rem + .6vw);
}
.title-jp{
color: var(--light-box-text);
margin-right: 1.2rem; padding-bottom: .6rem;
text-align: right;
}
.title-album{
display: flex; align-items: center;
margin-left: auto;
}
.title-album img{
margin: 0;
display: block;
margin-right: .6rem;
}
/* ENTRY PAGE DETAILS */
.track-info{
display: flex; flex-wrap: wrap; justify-content: space-around;
row-gap: 1.2rem;
}
.track-info li{
list-style: none;
}
.songpage-detail{
display: flex; flex-direction: column;
min-width: 18rem;
margin-left: 1.2rem; margin-right: 1.2rem;
}
.songpage-detail ul{
gap: .6rem;
}
.songpage-detail h2{
text-align: center;
margin-bottom: 1.2rem;
}
.songpage-detail li{
display: flex; align-items: baseline; gap: .6rem;
flex-wrap: wrap;
}
.songpage-credit{
font-size: small;
min-width: 4.2rem;
text-align: right;
}
.songpage-img{
display: inline-block;
height: 1.2rem;
align-self: flex-end;
}
.song-location{
display: flex; flex-direction: column;
width: 100%;
justify-content: center;
}
.song-location h2{
text-align: center;
margin-bottom: 1.2rem;
}
.entrypage-connections{
display: flex; flex-direction: column;
width: 100%;
justify-content: center;
}
.entrypage-connections h2{
text-align: center;
margin-bottom: 1.2rem;
}
.entrypage-clip{
display: flex; flex-wrap: wrap-reverse;
margin-bottom: 1.2rem;
column-gap: 2.4rem; row-gap: .6rem;
justify-content: center;
align-items: center;
}
.connection-icon{
display: inline-block;
width: 1.2rem; height: 1.2rem;
}
.clip-pointer{
display: flex; justify-content: center; align-items: center;
width: 18rem;
gap: .3rem;
text-align: center;
}
.clip-album-icon{
height: 1.2rem;
}
.clip-pointer a{
flex-shrink: 1;
}