erynwells.me/content/nihongo/flashcards/style.css
2023-03-13 21:06:45 -07:00

110 lines
2.3 KiB
CSS

/* Eryn Wells <eryn@erynwells.me> */
:root {
--card-drop-shadow-spread: 10px;
--card-drop-shadow-color: rgb(var(--lt-gray));
--gradient-full-opaque: var(--background);
}
@media (prefers-color-scheme: dark) {
:root {
--card-drop-shadow-color: rgb(var(--dk-gray));
}
}
section.flashcards {
position: relative;
}
section.flashcards > ul {
align-items: stretch;
display: flex;
flex-flow: row nowrap;
margin: 0;
overflow-x: scroll;
scroll-snap-type: x mandatory;
padding: 0;
}
section.flashcards > ul > li {
padding: 0;
margin: 0;
}
section.flashcards > ul::-webkit-scrollbar {
width: 0;
background: transparent;
}
section.flashcards > .shadow {
position: absolute;
top: 0;
height: 100%;
width: 5%;
z-index: 10;
}
section.flashcards > .shadow.left {
background: linear-gradient(
to right,
rgba(var(--gradient-full-opaque), 1),
rgba(var(--gradient-full-opaque), 0));
left: 0;
}
section.flashcards > .shadow.right {
background: linear-gradient(
to left,
rgba(var(--gradient-full-opaque), 1),
rgba(var(--gradient-full-opaque), 0));
right: 0;
}
ruby>rt,
ruby>rp {
visibility: hidden;
opacity: 0;
transition: 0.25s;
}
.card:hover ruby>rt,
.card:hover ruby>rp {
visibility: visible;
opacity: 0.8;
transition: 0.4s;
}
section.flashcards > ul > li.card-container {
display: flex;
justify-content: center;
align-items: center;
width: var(--content-width);
flex-shrink: 0;
padding-block: var(--card-drop-shadow-spread);
}
.card {
box-sizing: border-box;
border: 1px solid var(--separator-color);
display: flex;
justify-content: center;
align-items: center;
padding: 2rem;
text-align: center;
box-shadow: 4px 4px var(--card-drop-shadow-spread) var(--card-drop-shadow-color);
scroll-snap-align: center;
aspect-ratio: 4/3;
width: calc(var(--content-width) / 2);
}
.vertical {
text-orientation: upright;
writing-mode: vertical-rl;
}
.card > [lang="jp"] { font-size: 300%; }
.card > [lang="en"] { font-size: 200%; }
.card > .front { display: block; }
.card > .back { display: none; }
.card.flipped > .front { display: none; }
.card.flipped > .back { display: block; }