1
0

Add book Tier-List
Build Docker and Deploy / Build Docker (push) Successful in 2m10s
Build Docker and Deploy / Deploy to Server (push) Successful in 18s

This commit is contained in:
2026-04-15 17:15:54 +02:00
parent 63989d9bc7
commit 8e0039f6bd
14 changed files with 1495 additions and 806 deletions
+576 -361
View File
@@ -670,367 +670,6 @@ html, body {
width: 330px;
}
}
.aboutcontent {
display: block;
width: 100%;
}
.aboutcontent .boxedcontent {
margin-bottom: 20px;
}
.about_egg_container {
display: flex;
flex-direction: column;
align-items: center;
}
.git_list {
display: inline-block;
width: 715px;
height: 115px;
overflow: visible;
}
/* Level: 0 - 2 */
@media (max-device-width:991px) {
.git_list {
width: 100%;
height: auto;
}
.extGitGraphContainer {
width: 95%;
width: calc(100% - 16px);
}
}
.git_list text.caption {
font-size: 10px;
fill: #666;
}
.git_list text.caption_month {
font-size: 8px;
fill: #BBB;
}
.git_list text.caption_day {
font-size: 8px;
fill: #BBB;
}
.svg-tip:after {
box-sizing: border-box;
position: absolute;
left: 50%;
height: 5px;
width: 5px;
bottom: -10px;
margin: 0 0 0px -5px;
content: " ";
border: 5px solid transparent;
border-top-color: rgba(0, 0, 0, 0.8);
border-image: none;
}
.svg-tip {
padding: 5px;
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.8);
color: #BBB;
font-size: 12px;
position: absolute;
z-index: 99999;
text-align: center;
border-radius: 3px;
box-sizing: border-box;
opacity: 0;
pointer-events: none;
}
.extGitGraphContainer {
background-color: #FCFCFC;
margin: 10px;
display: inline-block;
border: 1px solid #222;
border-radius: 0;
box-shadow: 0 0 1px rgba(0, 0, 0, 0.25) inset;
}
.egg_footer {
margin-top: 5px;
text-align: right;
margin-right: 5px;
margin-bottom: 5px;
color: #888;
}
.egg_footer > a {
text-decoration: none;
color: inherit;
}
.egg_footer > a:hover {
text-decoration: none;
color: #22F;
}
.about_circles {
display: flex;
flex-direction: column;
}
.about_circles a {
margin: 5px 0;
}
.about_circles .iconbutton_light span {
text-align: left;
}
.egg_col_x5_0 {
fill: #eeeeee;
}
.egg_col_x5_1 {
fill: #6bcdff;
}
.egg_col_x5_2 {
fill: #00a1f3;
}
.egg_col_x5_3 {
fill: #0079b7;
}
.egg_col_x5_4 {
fill: #003958;
}
.about_ehr_container .reading-history {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
padding: 20px;
max-width: min(1170px, 100%);
}
.about_ehr_container .year-container {
margin-bottom: 16px;
}
.about_ehr_container .year-label {
font-size: 24px;
font-weight: bold;
color: #222222;
padding: 5px 10px;
}
.about_ehr_container .month-grid {
padding: 4px;
border: 1px solid #000;
display: grid;
gap: 8px;
}
.about_ehr_container {
/* Level: 4 */
}
@media (min-device-width:1200px) {
.about_ehr_container .month-grid {
grid-template-columns: repeat(6, 1fr);
}
}
.about_ehr_container {
/* Level: 3 */
}
@media (min-device-width:992px) and (max-device-width:1199px) {
.about_ehr_container .month-grid {
grid-template-columns: repeat(4, 1fr);
}
}
.about_ehr_container {
/* Level: 2 */
}
@media (min-device-width:851px) and (max-device-width:991px) {
.about_ehr_container .month-grid {
grid-template-columns: repeat(4, 1fr);
}
}
.about_ehr_container {
/* Level: 1 */
}
@media (min-device-width:768px) and (max-device-width:850px) {
.about_ehr_container .month-grid {
grid-template-columns: repeat(3, 1fr);
}
}
.about_ehr_container {
/* Level: 0 */
}
@media (max-device-width:767px) {
.about_ehr_container .month-grid {
grid-template-columns: repeat(1, 1fr);
}
}
.about_ehr_container .month-cell {
min-height: 180px;
background: #AAAAAA;
border: 1px solid #000;
}
.about_ehr_container .book-grid {
padding: 4px;
}
.about_ehr_container .month-label {
font-size: 0.8em;
background-color: #888888;
color: #000000;
border-bottom: 1px solid #000000;
text-align: center;
margin-bottom: 8px;
font-weight: bold;
}
.about_ehr_container {
/* Book item styles */
}
.about_ehr_container .book-item {
border-radius: 0;
position: relative;
}
.about_ehr_container .book-item:not(:hover) {
overflow: hidden;
border: 1px solid #000000;
}
.about_ehr_container .book-container {
position: relative;
transition: transform 0.2s ease-in-out, z-index 0s;
pointer-events: none;
}
.about_ehr_container {
/* Chapter overlay at top */
}
.about_ehr_container .book-item .chapter-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
background: linear-gradient(rgba(0, 0, 0, 0.8), transparent);
color: white;
font-size: 2px;
padding: 1px 1px 4px 1px;
text-align: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
opacity: 0;
}
.about_ehr_container {
/* Title overlay on hover */
}
.about_ehr_container .book-item .title-overlay {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
color: white;
font-size: 2px;
padding: 4px 1px 1px 1px;
transition: opacity 0.2s ease-in-out;
white-space: wrap;
opacity: 0;
}
.about_ehr_container .book-item img {
aspect-ratio: var(--preview-aspect-ratio);
}
.about_ehr_container .book-item.no-cover {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
color: white;
text-align: center;
padding: 4px;
}
.about_ehr_container {
/* Rating stars - top right on hover */
}
.about_ehr_container .rating-overlay {
position: absolute;
bottom: calc(100% + 0.5px);
right: 0;
width: 100%;
height: 2px;
background-size: contain;
background-repeat: no-repeat;
background-position: right bottom;
opacity: 0;
}
.about_ehr_container {
/* Word count - below title on hover */
}
.about_ehr_container .wordcount-overlay {
position: absolute;
top: calc(100% + 0.5px);
left: 0;
right: 0;
padding: 1px;
font-size: 2px;
text-align: center;
color: white;
background: rgba(0, 0, 0, 0.7);
opacity: 0;
}
.about_ehr_container {
/* Use data-count attribute to select star image */
}
.about_ehr_container .rating-overlay[data-count="1.0"] {
background-image: url("/data/images/ehr/stars_1.0.png");
}
.about_ehr_container .rating-overlay[data-count="1.5"] {
background-image: url("/data/images/ehr/stars_1.5.png");
}
.about_ehr_container .rating-overlay[data-count="2.0"] {
background-image: url("/data/images/ehr/stars_2.0.png");
}
.about_ehr_container .rating-overlay[data-count="2.5"] {
background-image: url("/data/images/ehr/stars_2.5.png");
}
.about_ehr_container .rating-overlay[data-count="3.0"] {
background-image: url("/data/images/ehr/stars_3.0.png");
}
.about_ehr_container .rating-overlay[data-count="3.5"] {
background-image: url("/data/images/ehr/stars_3.5.png");
}
.about_ehr_container .rating-overlay[data-count="4.0"] {
background-image: url("/data/images/ehr/stars_4.0.png");
}
.about_ehr_container .rating-overlay[data-count="4.5"] {
background-image: url("/data/images/ehr/stars_4.5.png");
}
.about_ehr_container .rating-overlay[data-count="5.0"] {
background-image: url("/data/images/ehr/stars_5.0.png");
}
.about_ehr_container {
/* ================================================================================================================== */
}
.about_ehr_container .book-item:hover .book-container {
transform: scale(8);
z-index: 10;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
background-color: #FFF;
position: absolute;
width: 32px;
height: calc(32px / var(--img-aspect-ratio));
left: calc(50% - 16px);
top: calc(50% - 16px / var(--img-aspect-ratio));
}
.about_ehr_container .book-item:hover .title-overlay {
opacity: 1;
}
.about_ehr_container .book-item:hover .chapter-overlay {
opacity: 1;
}
.about_ehr_container .book-item:hover .wordcount-overlay {
opacity: 1;
}
.about_ehr_container .book-item:hover .rating-overlay {
opacity: 1;
}
.admincontent {
display: block;
width: 100%;
@@ -1238,6 +877,582 @@ html, body {
margin: 5px 0 20px 0;
}
.aboutcontent {
display: block;
width: 100%;
}
.aboutcontent .boxedcontent {
margin-bottom: 20px;
}
.about_circles {
display: flex;
flex-direction: column;
}
.about_bfb {
display: flex;
justify-content: center;
align-items: center;
}
.about_bfb img {
max-width: 100%;
min-height: 230px;
height: auto;
}
.about_bfb {
padding: 4rem !important;
}
.about_circles a {
margin: 5px 0;
}
.about_circles .iconbutton_light span {
text-align: left;
}
.git_list {
display: inline-block;
width: 715px;
height: 115px;
overflow: visible;
}
/* Level: 0 - 2 */
@media (max-device-width:991px) {
.git_list {
width: 100%;
height: auto;
}
.extGitGraphContainer {
width: 95%;
width: calc(100% - 16px);
}
}
.git_list text.caption {
font-size: 10px;
fill: #666;
}
.git_list text.caption_month {
font-size: 8px;
fill: #BBB;
}
.git_list text.caption_day {
font-size: 8px;
fill: #BBB;
}
.about_egg_container .svg-tip:after {
box-sizing: border-box;
position: absolute;
left: 50%;
height: 5px;
width: 5px;
bottom: -10px;
margin: 0 0 0px -5px;
content: " ";
border: 5px solid transparent;
border-top-color: rgba(0, 0, 0, 0.8);
border-image: none;
}
.about_egg_container .svg-tip {
padding: 5px;
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.8);
color: #BBB;
font-size: 12px;
position: absolute;
z-index: 99999;
text-align: center;
border-radius: 3px;
box-sizing: border-box;
opacity: 0;
pointer-events: none;
}
.extGitGraphContainer {
background-color: #FCFCFC;
margin: 10px;
display: inline-block;
border: 1px solid #222;
border-radius: 0;
box-shadow: 0 0 1px rgba(0, 0, 0, 0.25) inset;
}
.egg_footer {
margin-top: 5px;
text-align: right;
margin-right: 5px;
margin-bottom: 5px;
color: #888;
}
.egg_footer > a {
text-decoration: none;
color: inherit;
}
.egg_footer > a:hover {
text-decoration: none;
color: #22F;
}
.about_circles {
display: flex;
flex-direction: column;
}
.about_bfb {
display: flex;
justify-content: center;
align-items: center;
}
.about_bfb img {
max-width: 100%;
min-height: 230px;
height: auto;
}
.about_bfb {
padding: 4rem !important;
}
.about_circles a {
margin: 5px 0;
}
.about_circles .iconbutton_light span {
text-align: left;
}
.egg_col_x5_0 {
fill: #eeeeee;
}
.egg_col_x5_1 {
fill: #6bcdff;
}
.egg_col_x5_2 {
fill: #00a1f3;
}
.egg_col_x5_3 {
fill: #0079b7;
}
.egg_col_x5_4 {
fill: #003958;
}
.about_ehr_container .reading-history {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
padding: 20px;
max-width: min(1170px, 100%);
}
.about_ehr_container .year-container {
margin-bottom: 16px;
}
.about_ehr_container .year-label {
font-size: 24px;
font-weight: bold;
color: #222222;
padding: 5px 10px;
}
.about_ehr_container .month-grid {
padding: 4px;
border: 1px solid #000;
display: grid;
gap: 8px;
}
.about_ehr_container {
/* Level: 4 */
}
@media (min-device-width:1200px) {
.about_ehr_container .month-grid {
grid-template-columns: repeat(6, 1fr);
}
}
.about_ehr_container {
/* Level: 3 */
}
@media (min-device-width:992px) and (max-device-width:1199px) {
.about_ehr_container .month-grid {
grid-template-columns: repeat(4, 1fr);
}
}
.about_ehr_container {
/* Level: 2 */
}
@media (min-device-width:851px) and (max-device-width:991px) {
.about_ehr_container .month-grid {
grid-template-columns: repeat(4, 1fr);
}
}
.about_ehr_container {
/* Level: 1 */
}
@media (min-device-width:768px) and (max-device-width:850px) {
.about_ehr_container .month-grid {
grid-template-columns: repeat(3, 1fr);
}
}
.about_ehr_container {
/* Level: 0 */
}
@media (max-device-width:767px) {
.about_ehr_container .month-grid {
grid-template-columns: repeat(1, 1fr);
}
}
.about_ehr_container .month-cell {
min-height: 180px;
background: #AAAAAA;
border: 1px solid #000;
}
.about_ehr_container .book-grid {
padding: 4px;
}
.about_ehr_container .month-label {
font-size: 0.8em;
background-color: #888888;
color: #000000;
border-bottom: 1px solid #000000;
text-align: center;
margin-bottom: 8px;
font-weight: bold;
}
.about_ehr_container {
/* Book item styles */
}
.about_ehr_container .book-item {
border-radius: 0;
position: relative;
}
.about_ehr_container .book-item:not(:hover) {
overflow: hidden;
border: 1px solid #000000;
}
.about_ehr_container .book-container {
position: relative;
transition: transform 0.2s ease-in-out, z-index 0s;
pointer-events: none;
display: flex;
}
.about_ehr_container {
/* Chapter overlay at top */
}
.about_ehr_container .book-item .chapter-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
background: linear-gradient(rgba(0, 0, 0, 0.8), transparent);
color: white;
font-size: 2px;
padding: 1px 1px 4px 1px;
text-align: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
opacity: 0;
}
.about_ehr_container {
/* Title overlay on hover */
}
.about_ehr_container .book-item .title-overlay {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
color: white;
font-size: 2px;
padding: 4px 1px 1px 1px;
transition: opacity 0.2s ease-in-out;
white-space: wrap;
opacity: 0;
}
.about_ehr_container .book-item img {
aspect-ratio: var(--preview-aspect-ratio);
}
.about_ehr_container .book-item.no-cover {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
color: white;
text-align: center;
padding: 4px;
}
.about_ehr_container {
/* Rating stars - top right on hover */
}
.about_ehr_container .rating-overlay {
position: absolute;
bottom: calc(100% + 0.5px);
right: 0;
width: 100%;
height: 2px;
background-size: contain;
background-repeat: no-repeat;
background-position: right bottom;
opacity: 0;
}
.about_ehr_container {
/* Word count - below title on hover */
}
.about_ehr_container .wordcount-overlay {
position: absolute;
top: calc(100% + 0.5px);
left: 0;
right: 0;
padding: 1px;
font-size: 2px;
text-align: center;
color: white;
background: rgba(0, 0, 0, 0.7);
opacity: 0;
}
.about_ehr_container {
/* Use data-count attribute to select star image */
}
.about_ehr_container .rating-overlay[data-count="1.0"] {
background-image: url("/data/images/ehr/stars_1.0.png");
}
.about_ehr_container .rating-overlay[data-count="1.5"] {
background-image: url("/data/images/ehr/stars_1.5.png");
}
.about_ehr_container .rating-overlay[data-count="2.0"] {
background-image: url("/data/images/ehr/stars_2.0.png");
}
.about_ehr_container .rating-overlay[data-count="2.5"] {
background-image: url("/data/images/ehr/stars_2.5.png");
}
.about_ehr_container .rating-overlay[data-count="3.0"] {
background-image: url("/data/images/ehr/stars_3.0.png");
}
.about_ehr_container .rating-overlay[data-count="3.5"] {
background-image: url("/data/images/ehr/stars_3.5.png");
}
.about_ehr_container .rating-overlay[data-count="4.0"] {
background-image: url("/data/images/ehr/stars_4.0.png");
}
.about_ehr_container .rating-overlay[data-count="4.5"] {
background-image: url("/data/images/ehr/stars_4.5.png");
}
.about_ehr_container .rating-overlay[data-count="5.0"] {
background-image: url("/data/images/ehr/stars_5.0.png");
}
.about_ehr_container {
/* ================================================================================================================== */
}
.about_ehr_container .book-item:hover .book-container {
transform: scale(8);
z-index: 10;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
background-color: #FFF;
position: absolute;
width: 32px;
height: calc(32px / var(--img-aspect-ratio));
left: calc(50% - 16px);
top: calc(50% - 16px / var(--img-aspect-ratio));
}
.about_ehr_container .book-item:hover .title-overlay {
opacity: 1;
}
.about_ehr_container .book-item:hover .chapter-overlay {
opacity: 1;
}
.about_ehr_container .book-item:hover .wordcount-overlay {
opacity: 1;
}
.about_ehr_container .book-item:hover .rating-overlay {
opacity: 1;
}
.about_tier_container .tierlist {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
padding: 20px;
max-width: min(1170px, 100%);
display: flex;
flex-direction: column;
gap: 12px;
}
.about_tier_container {
/* A row is: [label | cells ] */
}
.about_tier_container .tier-row {
display: grid;
grid-template-columns: 110px 1fr;
min-height: 56px;
border: 1px solid #000;
background: #AAAAAA;
}
.about_tier_container .tier-label {
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
color: #222;
padding: 8px;
text-align: center;
word-break: break-word;
border-right: 1px solid #000;
}
.about_tier_container .tier-cells {
display: flex;
flex-wrap: wrap;
gap: 4px;
padding: 4px;
}
.about_tier_container .tier-cell {
display: grid;
gap: 1px;
width: 48px;
height: calc(48px / var(--preview-aspect-ratio));
flex: 0 0 auto;
min-width: 0;
min-height: 0;
}
.about_tier_container .tier-0 .tier-label {
background: #9aa;
color: #000;
}
.about_tier_container .tier-5 .tier-label {
background: #ff7f7f;
}
.about_tier_container .tier-4 .tier-label {
background: #ffbf7f;
}
.about_tier_container .tier-3 .tier-label {
background: #ffff7f;
}
.about_tier_container .tier-2 .tier-label {
background: #bfff7f;
}
.about_tier_container .tier-1 .tier-label {
background: #7fffbf;
}
.about_tier_container .book-item {
border-radius: 2px;
position: relative;
display: block;
width: 100%;
height: 100%;
min-width: 0;
min-height: 0;
}
.about_tier_container .book-item:not(:hover) {
overflow: hidden;
}
.about_tier_container .book-container {
position: relative;
width: 100%;
height: 100%;
transition: transform 0.2s ease-in-out, z-index 0s;
pointer-events: none;
display: flex;
}
.about_tier_container .book-item.no-cover {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
color: white;
text-align: center;
padding: 4px;
}
.about_tier_container {
/* Overlays (hidden until hover) */
}
.about_tier_container .book-item .title-overlay {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
color: white;
font-size: 2px;
padding: 4px 1px 1px 1px;
transition: opacity 0.2s ease-in-out;
white-space: wrap;
opacity: 0;
}
.about_tier_container .rating-overlay {
position: absolute;
bottom: calc(100% + 0.5px);
right: 0;
width: 100%;
height: 2px;
background-size: contain;
background-repeat: no-repeat;
background-position: right bottom;
opacity: 0;
}
.about_tier_container .wordcount-overlay {
position: absolute;
top: calc(100% + 0.5px);
left: 0;
right: 0;
padding: 1px;
font-size: 2px;
text-align: center;
color: white;
background: rgba(0, 0, 0, 0.7);
opacity: 0;
}
.about_tier_container .rating-overlay[data-count="1.0"] {
background-image: url("/data/images/ehr/stars_1.0.png");
}
.about_tier_container .rating-overlay[data-count="1.5"] {
background-image: url("/data/images/ehr/stars_1.5.png");
}
.about_tier_container .rating-overlay[data-count="2.0"] {
background-image: url("/data/images/ehr/stars_2.0.png");
}
.about_tier_container .rating-overlay[data-count="2.5"] {
background-image: url("/data/images/ehr/stars_2.5.png");
}
.about_tier_container .rating-overlay[data-count="3.0"] {
background-image: url("/data/images/ehr/stars_3.0.png");
}
.about_tier_container .rating-overlay[data-count="3.5"] {
background-image: url("/data/images/ehr/stars_3.5.png");
}
.about_tier_container .rating-overlay[data-count="4.0"] {
background-image: url("/data/images/ehr/stars_4.0.png");
}
.about_tier_container .rating-overlay[data-count="4.5"] {
background-image: url("/data/images/ehr/stars_4.5.png");
}
.about_tier_container .rating-overlay[data-count="5.0"] {
background-image: url("/data/images/ehr/stars_5.0.png");
}
.about_tier_container .book-item:hover .book-container {
transform: scale(8);
z-index: 10;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
background-color: #FFF;
position: absolute;
width: 32px;
height: calc(32px / var(--img-aspect-ratio));
left: calc(50% - 16px);
top: calc(50% - 16px / var(--img-aspect-ratio));
}
.about_tier_container .book-item:hover .title-overlay {
opacity: 1;
}
.about_tier_container .book-item:hover .wordcount-overlay {
opacity: 1;
}
.about_tier_container .book-item:hover .rating-overlay {
opacity: 1;
}
.bloglistelem_container {
display: flex;
align-items: center;
+99 -60
View File
@@ -133,66 +133,6 @@ html,body{margin:0;padding:0;height:100%}
.index_pnl_header a:hover{text-decoration:underline}
.index_pnl_content{display:flex;flex-direction:column;background:#e0e0e0;padding:6px}
@media(max-device-width:850px){.index_pnl_base{width:330px}}
.aboutcontent{display:block;width:100%}
.aboutcontent .boxedcontent{margin-bottom:20px}
.about_egg_container{display:flex;flex-direction:column;align-items:center}
.git_list{display:inline-block;width:715px;height:115px;overflow:visible}
@media(max-device-width:991px){
.git_list{width:100%;height:auto}
.extGitGraphContainer{width:95%;width:calc(100% - 16px)}
}
.git_list text.caption{font-size:10px;fill:#666}
.git_list text.caption_month{font-size:8px;fill:#BBB}
.git_list text.caption_day{font-size:8px;fill:#BBB}
.svg-tip:after{box-sizing:border-box;position:absolute;left:50%;height:5px;width:5px;bottom:-10px;margin:0 0 0 -5px;content:" ";border:5px solid transparent;border-top-color:rgba(0,0,0,0.8);border-image:none}
.svg-tip{padding:5px;background:none repeat scroll 0 0 rgba(0,0,0,0.8);color:#BBB;font-size:12px;position:absolute;z-index:99999;text-align:center;border-radius:3px;box-sizing:border-box;opacity:0;pointer-events:none}
.extGitGraphContainer{background-color:#fcfcfc;margin:10px;display:inline-block;border:1px solid #222;border-radius:0;box-shadow:0 0 1px rgba(0,0,0,0.25) inset}
.egg_footer{margin-top:5px;text-align:right;margin-right:5px;margin-bottom:5px;color:#888}
.egg_footer>a{text-decoration:none;color:inherit}
.egg_footer>a:hover{text-decoration:none;color:#22F}
.about_circles{display:flex;flex-direction:column}
.about_circles a{margin:5px 0}
.about_circles .iconbutton_light span{text-align:left}
.egg_col_x5_0{fill:#eee}
.egg_col_x5_1{fill:#6bcdff}
.egg_col_x5_2{fill:#00a1f3}
.egg_col_x5_3{fill:#0079b7}
.egg_col_x5_4{fill:#003958}
.about_ehr_container .reading-history{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;padding:20px;max-width:min(1170px,100%)}
.about_ehr_container .year-container{margin-bottom:16px}
.about_ehr_container .year-label{font-size:24px;font-weight:bold;color:#222;padding:5px 10px}
.about_ehr_container .month-grid{padding:4px;border:1px solid #000;display:grid;gap:8px}
@media(min-device-width:1200px){.about_ehr_container .month-grid{grid-template-columns:repeat(6,1fr)}}
@media(min-device-width:992px) and (max-device-width:1199px){.about_ehr_container .month-grid{grid-template-columns:repeat(4,1fr)}}
@media(min-device-width:851px) and (max-device-width:991px){.about_ehr_container .month-grid{grid-template-columns:repeat(4,1fr)}}
@media(min-device-width:768px) and (max-device-width:850px){.about_ehr_container .month-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-device-width:767px){.about_ehr_container .month-grid{grid-template-columns:repeat(1,1fr)}}
.about_ehr_container .month-cell{min-height:180px;background:#aaa;border:1px solid #000}
.about_ehr_container .book-grid{padding:4px}
.about_ehr_container .month-label{font-size:.8em;background-color:#888;color:#000;border-bottom:1px solid #000;text-align:center;margin-bottom:8px;font-weight:bold}
.about_ehr_container .book-item{border-radius:0;position:relative}
.about_ehr_container .book-item:not(:hover){overflow:hidden;border:1px solid #000}
.about_ehr_container .book-container{position:relative;transition:transform .2s ease-in-out,z-index 0;pointer-events:none}
.about_ehr_container .book-item .chapter-overlay{position:absolute;top:0;left:0;right:0;background:linear-gradient(rgba(0,0,0,0.8),transparent);color:white;font-size:2px;padding:1px 1px 4px 1px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0}
.about_ehr_container .book-item .title-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,0.8));color:white;font-size:2px;padding:4px 1px 1px 1px;transition:opacity .2s ease-in-out;white-space:wrap;opacity:0}
.about_ehr_container .book-item img{aspect-ratio:var(--preview-aspect-ratio)}
.about_ehr_container .book-item.no-cover{background:linear-gradient(135deg,#667eea 0,#764ba2 100%);display:flex;align-items:center;justify-content:center;font-size:10px;color:white;text-align:center;padding:4px}
.about_ehr_container .rating-overlay{position:absolute;bottom:calc(100% + 0.5px);right:0;width:100%;height:2px;background-size:contain;background-repeat:no-repeat;background-position:right bottom;opacity:0}
.about_ehr_container .wordcount-overlay{position:absolute;top:calc(100% + 0.5px);left:0;right:0;padding:1px;font-size:2px;text-align:center;color:white;background:rgba(0,0,0,0.7);opacity:0}
.about_ehr_container .rating-overlay[data-count="1.0"]{background-image:url("/data/images/ehr/stars_1.0.png")}
.about_ehr_container .rating-overlay[data-count="1.5"]{background-image:url("/data/images/ehr/stars_1.5.png")}
.about_ehr_container .rating-overlay[data-count="2.0"]{background-image:url("/data/images/ehr/stars_2.0.png")}
.about_ehr_container .rating-overlay[data-count="2.5"]{background-image:url("/data/images/ehr/stars_2.5.png")}
.about_ehr_container .rating-overlay[data-count="3.0"]{background-image:url("/data/images/ehr/stars_3.0.png")}
.about_ehr_container .rating-overlay[data-count="3.5"]{background-image:url("/data/images/ehr/stars_3.5.png")}
.about_ehr_container .rating-overlay[data-count="4.0"]{background-image:url("/data/images/ehr/stars_4.0.png")}
.about_ehr_container .rating-overlay[data-count="4.5"]{background-image:url("/data/images/ehr/stars_4.5.png")}
.about_ehr_container .rating-overlay[data-count="5.0"]{background-image:url("/data/images/ehr/stars_5.0.png")}
.about_ehr_container .book-item:hover .book-container{transform:scale(8);z-index:10;box-shadow:0 4px 12px rgba(0,0,0,0.3);background-color:#FFF;position:absolute;width:32px;height:calc(32px / var(--img-aspect-ratio));left:calc(50% - 16px);top:calc(50% - 16px / var(--img-aspect-ratio))}
.about_ehr_container .book-item:hover .title-overlay{opacity:1}
.about_ehr_container .book-item:hover .chapter-overlay{opacity:1}
.about_ehr_container .book-item:hover .wordcount-overlay{opacity:1}
.about_ehr_container .book-item:hover .rating-overlay{opacity:1}
.admincontent{display:block;width:100%}
.admincontent .boxedcontent{margin-bottom:20px}
.egg_ajaxOutput{display:flex;box-sizing:border-box;width:100%;align-self:center;margin-left:auto;margin-right:auto;resize:none;height:300px}
@@ -232,6 +172,105 @@ html,body{margin:0;padding:0;height:100%}
#loginform div{display:flex;flex-direction:column}
#loginform div button{margin:10px 0;padding:0}
.loginerror{display:flex;background:#f44;color:#222;border:1px solid #a44;border-radius:2px;font-weight:bold;padding:0 5px;margin:5px 0 20px 0}
.aboutcontent{display:block;width:100%}
.aboutcontent .boxedcontent{margin-bottom:20px}
.about_circles{display:flex;flex-direction:column}
.about_bfb{display:flex;justify-content:center;align-items:center}
.about_bfb img{max-width:100%;min-height:230px;height:auto}
.about_bfb{padding:4rem !important}
.about_circles a{margin:5px 0}
.about_circles .iconbutton_light span{text-align:left}
.git_list{display:inline-block;width:715px;height:115px;overflow:visible}
@media(max-device-width:991px){
.git_list{width:100%;height:auto}
.extGitGraphContainer{width:95%;width:calc(100% - 16px)}
}
.git_list text.caption{font-size:10px;fill:#666}
.git_list text.caption_month{font-size:8px;fill:#BBB}
.git_list text.caption_day{font-size:8px;fill:#BBB}
.about_egg_container .svg-tip:after{box-sizing:border-box;position:absolute;left:50%;height:5px;width:5px;bottom:-10px;margin:0 0 0 -5px;content:" ";border:5px solid transparent;border-top-color:rgba(0,0,0,0.8);border-image:none}
.about_egg_container .svg-tip{padding:5px;background:none repeat scroll 0 0 rgba(0,0,0,0.8);color:#BBB;font-size:12px;position:absolute;z-index:99999;text-align:center;border-radius:3px;box-sizing:border-box;opacity:0;pointer-events:none}
.extGitGraphContainer{background-color:#fcfcfc;margin:10px;display:inline-block;border:1px solid #222;border-radius:0;box-shadow:0 0 1px rgba(0,0,0,0.25) inset}
.egg_footer{margin-top:5px;text-align:right;margin-right:5px;margin-bottom:5px;color:#888}
.egg_footer>a{text-decoration:none;color:inherit}
.egg_footer>a:hover{text-decoration:none;color:#22F}
.about_circles{display:flex;flex-direction:column}
.about_bfb{display:flex;justify-content:center;align-items:center}
.about_bfb img{max-width:100%;min-height:230px;height:auto}
.about_bfb{padding:4rem !important}
.about_circles a{margin:5px 0}
.about_circles .iconbutton_light span{text-align:left}
.egg_col_x5_0{fill:#eee}
.egg_col_x5_1{fill:#6bcdff}
.egg_col_x5_2{fill:#00a1f3}
.egg_col_x5_3{fill:#0079b7}
.egg_col_x5_4{fill:#003958}
.about_ehr_container .reading-history{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;padding:20px;max-width:min(1170px,100%)}
.about_ehr_container .year-container{margin-bottom:16px}
.about_ehr_container .year-label{font-size:24px;font-weight:bold;color:#222;padding:5px 10px}
.about_ehr_container .month-grid{padding:4px;border:1px solid #000;display:grid;gap:8px}
@media(min-device-width:1200px){.about_ehr_container .month-grid{grid-template-columns:repeat(6,1fr)}}
@media(min-device-width:992px) and (max-device-width:1199px){.about_ehr_container .month-grid{grid-template-columns:repeat(4,1fr)}}
@media(min-device-width:851px) and (max-device-width:991px){.about_ehr_container .month-grid{grid-template-columns:repeat(4,1fr)}}
@media(min-device-width:768px) and (max-device-width:850px){.about_ehr_container .month-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-device-width:767px){.about_ehr_container .month-grid{grid-template-columns:repeat(1,1fr)}}
.about_ehr_container .month-cell{min-height:180px;background:#aaa;border:1px solid #000}
.about_ehr_container .book-grid{padding:4px}
.about_ehr_container .month-label{font-size:.8em;background-color:#888;color:#000;border-bottom:1px solid #000;text-align:center;margin-bottom:8px;font-weight:bold}
.about_ehr_container .book-item{border-radius:0;position:relative}
.about_ehr_container .book-item:not(:hover){overflow:hidden;border:1px solid #000}
.about_ehr_container .book-container{position:relative;transition:transform .2s ease-in-out,z-index 0;pointer-events:none;display:flex}
.about_ehr_container .book-item .chapter-overlay{position:absolute;top:0;left:0;right:0;background:linear-gradient(rgba(0,0,0,0.8),transparent);color:white;font-size:2px;padding:1px 1px 4px 1px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:0}
.about_ehr_container .book-item .title-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,0.8));color:white;font-size:2px;padding:4px 1px 1px 1px;transition:opacity .2s ease-in-out;white-space:wrap;opacity:0}
.about_ehr_container .book-item img{aspect-ratio:var(--preview-aspect-ratio)}
.about_ehr_container .book-item.no-cover{background:linear-gradient(135deg,#667eea 0,#764ba2 100%);display:flex;align-items:center;justify-content:center;font-size:10px;color:white;text-align:center;padding:4px}
.about_ehr_container .rating-overlay{position:absolute;bottom:calc(100% + 0.5px);right:0;width:100%;height:2px;background-size:contain;background-repeat:no-repeat;background-position:right bottom;opacity:0}
.about_ehr_container .wordcount-overlay{position:absolute;top:calc(100% + 0.5px);left:0;right:0;padding:1px;font-size:2px;text-align:center;color:white;background:rgba(0,0,0,0.7);opacity:0}
.about_ehr_container .rating-overlay[data-count="1.0"]{background-image:url("/data/images/ehr/stars_1.0.png")}
.about_ehr_container .rating-overlay[data-count="1.5"]{background-image:url("/data/images/ehr/stars_1.5.png")}
.about_ehr_container .rating-overlay[data-count="2.0"]{background-image:url("/data/images/ehr/stars_2.0.png")}
.about_ehr_container .rating-overlay[data-count="2.5"]{background-image:url("/data/images/ehr/stars_2.5.png")}
.about_ehr_container .rating-overlay[data-count="3.0"]{background-image:url("/data/images/ehr/stars_3.0.png")}
.about_ehr_container .rating-overlay[data-count="3.5"]{background-image:url("/data/images/ehr/stars_3.5.png")}
.about_ehr_container .rating-overlay[data-count="4.0"]{background-image:url("/data/images/ehr/stars_4.0.png")}
.about_ehr_container .rating-overlay[data-count="4.5"]{background-image:url("/data/images/ehr/stars_4.5.png")}
.about_ehr_container .rating-overlay[data-count="5.0"]{background-image:url("/data/images/ehr/stars_5.0.png")}
.about_ehr_container .book-item:hover .book-container{transform:scale(8);z-index:10;box-shadow:0 4px 12px rgba(0,0,0,0.3);background-color:#FFF;position:absolute;width:32px;height:calc(32px / var(--img-aspect-ratio));left:calc(50% - 16px);top:calc(50% - 16px / var(--img-aspect-ratio))}
.about_ehr_container .book-item:hover .title-overlay{opacity:1}
.about_ehr_container .book-item:hover .chapter-overlay{opacity:1}
.about_ehr_container .book-item:hover .wordcount-overlay{opacity:1}
.about_ehr_container .book-item:hover .rating-overlay{opacity:1}
.about_tier_container .tierlist{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;padding:20px;max-width:min(1170px,100%);display:flex;flex-direction:column;gap:12px}
.about_tier_container .tier-row{display:grid;grid-template-columns:110px 1fr;min-height:56px;border:1px solid #000;background:#aaa}
.about_tier_container .tier-label{display:flex;align-items:center;justify-content:center;font-weight:bold;color:#222;padding:8px;text-align:center;word-break:break-word;border-right:1px solid #000}
.about_tier_container .tier-cells{display:flex;flex-wrap:wrap;gap:4px;padding:4px}
.about_tier_container .tier-cell{display:grid;gap:1px;width:48px;height:calc(48px / var(--preview-aspect-ratio));flex:0 0 auto;min-width:0;min-height:0}
.about_tier_container .tier-0 .tier-label{background:#9aa;color:#000}
.about_tier_container .tier-5 .tier-label{background:#ff7f7f}
.about_tier_container .tier-4 .tier-label{background:#ffbf7f}
.about_tier_container .tier-3 .tier-label{background:#ffff7f}
.about_tier_container .tier-2 .tier-label{background:#bfff7f}
.about_tier_container .tier-1 .tier-label{background:#7fffbf}
.about_tier_container .book-item{border-radius:2px;position:relative;display:block;width:100%;height:100%;min-width:0;min-height:0}
.about_tier_container .book-item:not(:hover){overflow:hidden}
.about_tier_container .book-container{position:relative;width:100%;height:100%;transition:transform .2s ease-in-out,z-index 0;pointer-events:none;display:flex}
.about_tier_container .book-item.no-cover{background:linear-gradient(135deg,#667eea 0,#764ba2 100%);display:flex;align-items:center;justify-content:center;font-size:10px;color:white;text-align:center;padding:4px}
.about_tier_container .book-item .title-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,0.8));color:white;font-size:2px;padding:4px 1px 1px 1px;transition:opacity .2s ease-in-out;white-space:wrap;opacity:0}
.about_tier_container .rating-overlay{position:absolute;bottom:calc(100% + 0.5px);right:0;width:100%;height:2px;background-size:contain;background-repeat:no-repeat;background-position:right bottom;opacity:0}
.about_tier_container .wordcount-overlay{position:absolute;top:calc(100% + 0.5px);left:0;right:0;padding:1px;font-size:2px;text-align:center;color:white;background:rgba(0,0,0,0.7);opacity:0}
.about_tier_container .rating-overlay[data-count="1.0"]{background-image:url("/data/images/ehr/stars_1.0.png")}
.about_tier_container .rating-overlay[data-count="1.5"]{background-image:url("/data/images/ehr/stars_1.5.png")}
.about_tier_container .rating-overlay[data-count="2.0"]{background-image:url("/data/images/ehr/stars_2.0.png")}
.about_tier_container .rating-overlay[data-count="2.5"]{background-image:url("/data/images/ehr/stars_2.5.png")}
.about_tier_container .rating-overlay[data-count="3.0"]{background-image:url("/data/images/ehr/stars_3.0.png")}
.about_tier_container .rating-overlay[data-count="3.5"]{background-image:url("/data/images/ehr/stars_3.5.png")}
.about_tier_container .rating-overlay[data-count="4.0"]{background-image:url("/data/images/ehr/stars_4.0.png")}
.about_tier_container .rating-overlay[data-count="4.5"]{background-image:url("/data/images/ehr/stars_4.5.png")}
.about_tier_container .rating-overlay[data-count="5.0"]{background-image:url("/data/images/ehr/stars_5.0.png")}
.about_tier_container .book-item:hover .book-container{transform:scale(8);z-index:10;box-shadow:0 4px 12px rgba(0,0,0,0.3);background-color:#FFF;position:absolute;width:32px;height:calc(32px / var(--img-aspect-ratio));left:calc(50% - 16px);top:calc(50% - 16px / var(--img-aspect-ratio))}
.about_tier_container .book-item:hover .title-overlay{opacity:1}
.about_tier_container .book-item:hover .wordcount-overlay{opacity:1}
.about_tier_container .book-item:hover .rating-overlay{opacity:1}
.bloglistelem_container{display:flex;align-items:center;flex-direction:column}
.bloglistelem{width:100%;border:1px solid #444;margin:10px 5px;color:#333;text-decoration:none}
.ble_blog{background-color:#bbb}
+5 -1
View File
@@ -3,10 +3,14 @@
@import 'styles_footer';
@import 'styles_main';
@import 'styles_about';
@import 'styles_admin';
@import 'styles_login';
@import 'styles_about';
@import 'styles_about_git';
@import 'styles_about_bookhistory';
@import 'styles_about_booktierlist';
@import 'styles_bloglist';
@import 'styles_blogview';
@import 'styles_blogview_euler';
+14 -359
View File
@@ -9,103 +9,25 @@
margin-bottom: 20px;
}
.about_egg_container {
display: flex;
flex-direction: column;
align-items: center;
}
.git_list {
display: inline-block;
width: 715px;
height: 115px;
overflow: visible;
}
@include rdmedia_range(0,2) {
.git_list { width: 100%; height: auto; }
.extGitGraphContainer { width: 95%; width: calc(100% - 16px); }
}
.git_list text.caption {
font-size: 10px;
fill: #666;
}
.git_list text.caption_month {
font-size: 8px;
fill: #BBB;
}
.git_list text.caption_day {
font-size: 8px;
fill: #BBB;
}
.svg-tip:after {
box-sizing: border-box;
position: absolute;
left: 50%;
height: 5px;
width: 5px;
bottom: -10px;
margin: 0 0 0px -5px;
content: " ";
border: 5px solid transparent;
border-top-color: rgba(0, 0, 0, 0.8);
border-image: none;
}
.svg-tip {
padding: 5px;
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.8);
color: #BBB;
font-size: 12px;
position: absolute;
z-index: 99999;
text-align: center;
border-radius: 3px;
box-sizing: border-box;
opacity: 0;
pointer-events: none;
}
.extGitGraphContainer {
background-color: #FCFCFC;
margin: 10px;
display: inline-block;
border: 1px solid #222;
border-radius: 0;
box-shadow: 0 0 1px rgba(0, 0, 0, 0.25) inset;
}
.egg_footer {
margin-top: 5px;
text-align: right;
margin-right: 5px;
margin-bottom: 5px;
color: #888;
}
.egg_footer > a {
text-decoration: none;
color: inherit;
}
.egg_footer > a:hover {
text-decoration: none;
color: #22F;
}
.about_circles {
display: flex;
flex-direction: column;
}
.about_bfb {
display: flex;
justify-content: center;
align-items: center;
img {
max-width: 100%;
min-height: 230px;
height: auto;
}
padding: 4rem !important;
}
.about_circles {
a { margin: 5px 0; }
@@ -113,270 +35,3 @@
.iconbutton_light span {text-align: left;}
}
@if $CFG_EGG_THEME == 'standard'
{
// ==== STANDARD ====
.egg_col_x5_0 { fill: #ebedf0; }
.egg_col_x5_1 { fill: #c6e48b; }
.egg_col_x5_2 { fill: #7bc96f; }
.egg_col_x5_3 { fill: #239a3b; }
.egg_col_x5_4 { fill: #196127; }
}
@else if $CFG_EGG_THEME == 'modern'
{
.egg_col_x5_0 { fill: #afaca8; }
.egg_col_x5_1 { fill: #d6e685; }
.egg_col_x5_2 { fill: #8cc665; }
.egg_col_x5_3 { fill: #44a340; }
.egg_col_x5_4 { fill: #1e6823; }
}
@else if $CFG_EGG_THEME == 'gray'
{
.egg_col_x5_0 { fill: #eeeeee; }
.egg_col_x5_1 { fill: #bdbdbd; }
.egg_col_x5_2 { fill: #9e9e9e; }
.egg_col_x5_3 { fill: #616161; }
.egg_col_x5_4 { fill: #212121; }
}
@else if $CFG_EGG_THEME == 'red'
{
.egg_col_x5_0 { fill: #eeeeee; }
.egg_col_x5_1 { fill: #ff7171; }
.egg_col_x5_2 { fill: #ff0000; }
.egg_col_x5_3 { fill: #b70000; }
.egg_col_x5_4 { fill: #830000; }
}
@else if $CFG_EGG_THEME == 'blue'
{
.egg_col_x5_0 { fill: #eeeeee; }
.egg_col_x5_1 { fill: #6bcdff; }
.egg_col_x5_2 { fill: #00a1f3; }
.egg_col_x5_3 { fill: #0079b7; }
.egg_col_x5_4 { fill: #003958; }
}
@else if $CFG_EGG_THEME == 'purple'
{
.egg_col_x5_0 { fill: #eeeeee; }
.egg_col_x5_1 { fill: #d2ace6; }
.egg_col_x5_2 { fill: #aa66cc; }
.egg_col_x5_3 { fill: #660099; }
.egg_col_x5_4 { fill: #4f2266; }
}
@else if $CFG_EGG_THEME == 'orange'
{
.egg_col_x5_0 { fill: #eeeeee; }
.egg_col_x5_1 { fill: #ffcc80; }
.egg_col_x5_2 { fill: #ffa726; }
.egg_col_x5_3 { fill: #fb8c00; }
.egg_col_x5_4 { fill: #e65100; }
}
@else if $CFG_EGG_THEME == 'halloween'
{
.egg_col_x5_0 { fill: #eeeeee; }
.egg_col_x5_1 { fill: #ffee4a; }
.egg_col_x5_2 { fill: #ffc501; }
.egg_col_x5_3 { fill: #fe9600; }
.egg_col_x5_4 { fill: #03001c; }
}
@else if $CFG_EGG_THEME == 'custom'
{
.egg_col_x9_0 { fill: #F5F5F5; }
.egg_col_x9_1 { fill: #DBDEE0; }
.egg_col_x9_2 { fill: #C2C7CB; }
.egg_col_x9_3 { fill: #AAB0B7; }
.egg_col_x9_4 { fill: #9099A2; }
.egg_col_x9_5 { fill: #77828E; }
.egg_col_x9_6 { fill: #5E6B79; }
.egg_col_x9_7 { fill: #455464; }
.egg_col_x9_8 { fill: #2C3E50; }
}
.about_ehr_container {
.reading-history {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
padding: 20px;
max-width: calc( min( 1170px, 100% ) );
}
.year-container {
margin-bottom: 16px;
}
.year-label {
font-size: 24px;
font-weight: bold;
color: #222222;
padding: 5px 10px;
}
.month-grid {
padding: 4px;
border: 1px solid #000;
display: grid;
gap: 8px;
}
@include rdmedia(4) { .month-grid { grid-template-columns: repeat(6, 1fr); } }
@include rdmedia(3) { .month-grid { grid-template-columns: repeat(4, 1fr); } }
@include rdmedia(2) { .month-grid { grid-template-columns: repeat(4, 1fr); } }
@include rdmedia(1) { .month-grid { grid-template-columns: repeat(3, 1fr); } }
@include rdmedia(0) { .month-grid { grid-template-columns: repeat(1, 1fr); } }
.month-cell {
min-height: 180px;
background: #AAAAAA;
border: 1px solid #000;
}
.book-grid {
padding: 4px;
}
.month-label {
font-size: 0.8em;
background-color: #888888;
color: #000000;
border-bottom: 1px solid #000000;
text-align: center;
margin-bottom: 8px;
font-weight: bold;
}
/* Book item styles */
.book-item {
border-radius: 0;
position: relative;
}
.book-item:not(:hover) {
overflow: hidden;
border: 1px solid #000000;
}
.book-container {
position: relative;
transition: transform 0.2s ease-in-out, z-index 0s;
pointer-events: none;
}
/* Chapter overlay at top */
.book-item .chapter-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
background: linear-gradient(rgba(0, 0, 0, 0.8), transparent);
color: white;
font-size: 2px;
padding: 1px 1px 4px 1px;
text-align: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
opacity: 0;
}
/* Title overlay on hover */
.book-item .title-overlay {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
color: white;
font-size: 2px;
padding: 4px 1px 1px 1px;
transition: opacity 0.2s ease-in-out;
white-space: wrap;
opacity: 0;
}
.book-item img {
aspect-ratio: var(--preview-aspect-ratio);
}
.book-item.no-cover {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
color: white;
text-align: center;
padding: 4px;
}
/* Rating stars - top right on hover */
.rating-overlay {
position: absolute;
bottom: calc(100% + 0.5px);
right: 0;
width: 100%;
height: 2px;
background-size: contain;
background-repeat: no-repeat;
background-position: right bottom;
opacity: 0;
}
/* Word count - below title on hover */
.wordcount-overlay {
position: absolute;
top: calc(100% + 0.5px);
left: 0;
right: 0;
padding: 1px;
font-size: 2px;
text-align: center;
color: white;
background: rgba(0,0,0,0.7);
opacity: 0;
}
/* Use data-count attribute to select star image */
.rating-overlay[data-count="1.0"] { background-image: url('/data/images/ehr/stars_1.0.png'); }
.rating-overlay[data-count="1.5"] { background-image: url('/data/images/ehr/stars_1.5.png'); }
.rating-overlay[data-count="2.0"] { background-image: url('/data/images/ehr/stars_2.0.png'); }
.rating-overlay[data-count="2.5"] { background-image: url('/data/images/ehr/stars_2.5.png'); }
.rating-overlay[data-count="3.0"] { background-image: url('/data/images/ehr/stars_3.0.png'); }
.rating-overlay[data-count="3.5"] { background-image: url('/data/images/ehr/stars_3.5.png'); }
.rating-overlay[data-count="4.0"] { background-image: url('/data/images/ehr/stars_4.0.png'); }
.rating-overlay[data-count="4.5"] { background-image: url('/data/images/ehr/stars_4.5.png'); }
.rating-overlay[data-count="5.0"] { background-image: url('/data/images/ehr/stars_5.0.png'); }
/* ================================================================================================================== */
.book-item:hover .book-container {
transform: scale(8);
z-index: 10;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
background-color: #FFF;
position: absolute;
width: 32px;
height: calc( 32px / var(--img-aspect-ratio) );
left: calc(50% - 16px);
top: calc(50% - (16px / var(--img-aspect-ratio)));
}
.book-item:hover .title-overlay {
opacity: 1;
}
.book-item:hover .chapter-overlay {
opacity: 1;
}
.book-item:hover .wordcount-overlay { opacity: 1; }
.book-item:hover .rating-overlay { opacity: 1; }
}
+191
View File
@@ -0,0 +1,191 @@
@import 'styles_config';
.about_ehr_container {
.reading-history {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
padding: 20px;
max-width: calc( min( 1170px, 100% ) );
}
.year-container {
margin-bottom: 16px;
}
.year-label {
font-size: 24px;
font-weight: bold;
color: #222222;
padding: 5px 10px;
}
.month-grid {
padding: 4px;
border: 1px solid #000;
display: grid;
gap: 8px;
}
@include rdmedia(4) { .month-grid { grid-template-columns: repeat(6, 1fr); } }
@include rdmedia(3) { .month-grid { grid-template-columns: repeat(4, 1fr); } }
@include rdmedia(2) { .month-grid { grid-template-columns: repeat(4, 1fr); } }
@include rdmedia(1) { .month-grid { grid-template-columns: repeat(3, 1fr); } }
@include rdmedia(0) { .month-grid { grid-template-columns: repeat(1, 1fr); } }
.month-cell {
min-height: 180px;
background: #AAAAAA;
border: 1px solid #000;
}
.book-grid {
padding: 4px;
}
.month-label {
font-size: 0.8em;
background-color: #888888;
color: #000000;
border-bottom: 1px solid #000000;
text-align: center;
margin-bottom: 8px;
font-weight: bold;
}
/* Book item styles */
.book-item {
border-radius: 0;
position: relative;
}
.book-item:not(:hover) {
overflow: hidden;
border: 1px solid #000000;
}
.book-container {
position: relative;
transition: transform 0.2s ease-in-out, z-index 0s;
pointer-events: none;
display: flex;
}
/* Chapter overlay at top */
.book-item .chapter-overlay {
position: absolute;
top: 0;
left: 0;
right: 0;
background: linear-gradient(rgba(0, 0, 0, 0.8), transparent);
color: white;
font-size: 2px;
padding: 1px 1px 4px 1px;
text-align: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
opacity: 0;
}
/* Title overlay on hover */
.book-item .title-overlay {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
color: white;
font-size: 2px;
padding: 4px 1px 1px 1px;
transition: opacity 0.2s ease-in-out;
white-space: wrap;
opacity: 0;
}
.book-item img {
aspect-ratio: var(--preview-aspect-ratio);
}
.book-item.no-cover {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
color: white;
text-align: center;
padding: 4px;
}
/* Rating stars - top right on hover */
.rating-overlay {
position: absolute;
bottom: calc(100% + 0.5px);
right: 0;
width: 100%;
height: 2px;
background-size: contain;
background-repeat: no-repeat;
background-position: right bottom;
opacity: 0;
}
/* Word count - below title on hover */
.wordcount-overlay {
position: absolute;
top: calc(100% + 0.5px);
left: 0;
right: 0;
padding: 1px;
font-size: 2px;
text-align: center;
color: white;
background: rgba(0,0,0,0.7);
opacity: 0;
}
/* Use data-count attribute to select star image */
.rating-overlay[data-count="1.0"] { background-image: url('/data/images/ehr/stars_1.0.png'); }
.rating-overlay[data-count="1.5"] { background-image: url('/data/images/ehr/stars_1.5.png'); }
.rating-overlay[data-count="2.0"] { background-image: url('/data/images/ehr/stars_2.0.png'); }
.rating-overlay[data-count="2.5"] { background-image: url('/data/images/ehr/stars_2.5.png'); }
.rating-overlay[data-count="3.0"] { background-image: url('/data/images/ehr/stars_3.0.png'); }
.rating-overlay[data-count="3.5"] { background-image: url('/data/images/ehr/stars_3.5.png'); }
.rating-overlay[data-count="4.0"] { background-image: url('/data/images/ehr/stars_4.0.png'); }
.rating-overlay[data-count="4.5"] { background-image: url('/data/images/ehr/stars_4.5.png'); }
.rating-overlay[data-count="5.0"] { background-image: url('/data/images/ehr/stars_5.0.png'); }
/* ================================================================================================================== */
.book-item:hover .book-container {
transform: scale(8);
z-index: 10;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
background-color: #FFF;
position: absolute;
width: 32px;
height: calc( 32px / var(--img-aspect-ratio) );
left: calc(50% - 16px);
top: calc(50% - (16px / var(--img-aspect-ratio)));
}
.book-item:hover .title-overlay {
opacity: 1;
}
.book-item:hover .chapter-overlay {
opacity: 1;
}
.book-item:hover .wordcount-overlay { opacity: 1; }
.book-item:hover .rating-overlay { opacity: 1; }
}
+162
View File
@@ -0,0 +1,162 @@
@import 'styles_config';
.about_tier_container {
.tierlist {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
padding: 20px;
max-width: calc( min( 1170px, 100% ) );
display: flex;
flex-direction: column;
gap: 12px;
}
/* A row is: [label | cells ] */
.tier-row {
display: grid;
grid-template-columns: 110px 1fr;
min-height: 56px;
border: 1px solid #000;
background: #AAAAAA;
}
.tier-label {
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
color: #222;
padding: 8px;
text-align: center;
word-break: break-word;
border-right: 1px solid #000;
}
.tier-cells {
display: flex;
flex-wrap: wrap;
gap: 4px;
padding: 4px;
}
.tier-cell {
display: grid;
gap: 1px;
width: 48px;
height: calc( 48px / var(--preview-aspect-ratio) );
flex: 0 0 auto;
min-width: 0;
min-height: 0;
}
.tier-0 .tier-label { background: #9aa; color: #000; }
.tier-5 .tier-label { background: #ff7f7f; }
.tier-4 .tier-label { background: #ffbf7f; }
.tier-3 .tier-label { background: #ffff7f; }
.tier-2 .tier-label { background: #bfff7f; }
.tier-1 .tier-label { background: #7fffbf; }
.book-item {
border-radius: 2px;
position: relative;
display: block;
width: 100%;
height: 100%;
min-width: 0;
min-height: 0;
}
.book-item:not(:hover) {
overflow: hidden;
}
.book-container {
position: relative;
width: 100%;
height: 100%;
transition: transform 0.2s ease-in-out, z-index 0s;
pointer-events: none;
display: flex;
}
.book-item.no-cover {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
display: flex;
align-items: center;
justify-content: center;
font-size: 10px;
color: white;
text-align: center;
padding: 4px;
}
/* Overlays (hidden until hover) */
.book-item .title-overlay {
position: absolute;
bottom: 0;
left: 0;
right: 0;
background: linear-gradient(transparent, rgba(0, 0, 0, 0.8));
color: white;
font-size: 2px;
padding: 4px 1px 1px 1px;
transition: opacity 0.2s ease-in-out;
white-space: wrap;
opacity: 0;
}
.rating-overlay {
position: absolute;
bottom: calc(100% + 0.5px);
right: 0;
width: 100%;
height: 2px;
background-size: contain;
background-repeat: no-repeat;
background-position: right bottom;
opacity: 0;
}
.wordcount-overlay {
position: absolute;
top: calc(100% + 0.5px);
left: 0;
right: 0;
padding: 1px;
font-size: 2px;
text-align: center;
color: white;
background: rgba(0,0,0,0.7);
opacity: 0;
}
.rating-overlay[data-count="1.0"] { background-image: url('/data/images/ehr/stars_1.0.png'); }
.rating-overlay[data-count="1.5"] { background-image: url('/data/images/ehr/stars_1.5.png'); }
.rating-overlay[data-count="2.0"] { background-image: url('/data/images/ehr/stars_2.0.png'); }
.rating-overlay[data-count="2.5"] { background-image: url('/data/images/ehr/stars_2.5.png'); }
.rating-overlay[data-count="3.0"] { background-image: url('/data/images/ehr/stars_3.0.png'); }
.rating-overlay[data-count="3.5"] { background-image: url('/data/images/ehr/stars_3.5.png'); }
.rating-overlay[data-count="4.0"] { background-image: url('/data/images/ehr/stars_4.0.png'); }
.rating-overlay[data-count="4.5"] { background-image: url('/data/images/ehr/stars_4.5.png'); }
.rating-overlay[data-count="5.0"] { background-image: url('/data/images/ehr/stars_5.0.png'); }
.book-item:hover .book-container {
transform: scale(8);
z-index: 10;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
background-color: #FFF;
position: absolute;
width: 32px;
height: calc( 32px / var(--img-aspect-ratio) );
left: calc(50% - 16px);
top: calc(50% - (16px / var(--img-aspect-ratio)));
}
.book-item:hover .title-overlay { opacity: 1; }
.book-item:hover .wordcount-overlay { opacity: 1; }
.book-item:hover .rating-overlay { opacity: 1; }
}
+192
View File
@@ -0,0 +1,192 @@
@import 'styles_config';
.git_list {
display: inline-block;
width: 715px;
height: 115px;
overflow: visible;
}
@include rdmedia_range(0,2) {
.git_list { width: 100%; height: auto; }
.extGitGraphContainer { width: 95%; width: calc(100% - 16px); }
}
.git_list text.caption {
font-size: 10px;
fill: #666;
}
.git_list text.caption_month {
font-size: 8px;
fill: #BBB;
}
.git_list text.caption_day {
font-size: 8px;
fill: #BBB;
}
.about_egg_container .svg-tip:after {
box-sizing: border-box;
position: absolute;
left: 50%;
height: 5px;
width: 5px;
bottom: -10px;
margin: 0 0 0px -5px;
content: " ";
border: 5px solid transparent;
border-top-color: rgba(0, 0, 0, 0.8);
border-image: none;
}
.about_egg_container .svg-tip {
padding: 5px;
background: none repeat scroll 0 0 rgba(0, 0, 0, 0.8);
color: #BBB;
font-size: 12px;
position: absolute;
z-index: 99999;
text-align: center;
border-radius: 3px;
box-sizing: border-box;
opacity: 0;
pointer-events: none;
}
.extGitGraphContainer {
background-color: #FCFCFC;
margin: 10px;
display: inline-block;
border: 1px solid #222;
border-radius: 0;
box-shadow: 0 0 1px rgba(0, 0, 0, 0.25) inset;
}
.egg_footer {
margin-top: 5px;
text-align: right;
margin-right: 5px;
margin-bottom: 5px;
color: #888;
}
.egg_footer > a {
text-decoration: none;
color: inherit;
}
.egg_footer > a:hover {
text-decoration: none;
color: #22F;
}
.about_circles {
display: flex;
flex-direction: column;
}
.about_bfb {
display: flex;
justify-content: center;
align-items: center;
img {
max-width: 100%;
min-height: 230px;
height: auto;
}
padding: 4rem !important;
}
.about_circles {
a { margin: 5px 0; }
.iconbutton_light span {text-align: left;}
}
@if $CFG_EGG_THEME == 'standard'
{
// ==== STANDARD ====
.egg_col_x5_0 { fill: #ebedf0; }
.egg_col_x5_1 { fill: #c6e48b; }
.egg_col_x5_2 { fill: #7bc96f; }
.egg_col_x5_3 { fill: #239a3b; }
.egg_col_x5_4 { fill: #196127; }
}
@else if $CFG_EGG_THEME == 'modern'
{
.egg_col_x5_0 { fill: #afaca8; }
.egg_col_x5_1 { fill: #d6e685; }
.egg_col_x5_2 { fill: #8cc665; }
.egg_col_x5_3 { fill: #44a340; }
.egg_col_x5_4 { fill: #1e6823; }
}
@else if $CFG_EGG_THEME == 'gray'
{
.egg_col_x5_0 { fill: #eeeeee; }
.egg_col_x5_1 { fill: #bdbdbd; }
.egg_col_x5_2 { fill: #9e9e9e; }
.egg_col_x5_3 { fill: #616161; }
.egg_col_x5_4 { fill: #212121; }
}
@else if $CFG_EGG_THEME == 'red'
{
.egg_col_x5_0 { fill: #eeeeee; }
.egg_col_x5_1 { fill: #ff7171; }
.egg_col_x5_2 { fill: #ff0000; }
.egg_col_x5_3 { fill: #b70000; }
.egg_col_x5_4 { fill: #830000; }
}
@else if $CFG_EGG_THEME == 'blue'
{
.egg_col_x5_0 { fill: #eeeeee; }
.egg_col_x5_1 { fill: #6bcdff; }
.egg_col_x5_2 { fill: #00a1f3; }
.egg_col_x5_3 { fill: #0079b7; }
.egg_col_x5_4 { fill: #003958; }
}
@else if $CFG_EGG_THEME == 'purple'
{
.egg_col_x5_0 { fill: #eeeeee; }
.egg_col_x5_1 { fill: #d2ace6; }
.egg_col_x5_2 { fill: #aa66cc; }
.egg_col_x5_3 { fill: #660099; }
.egg_col_x5_4 { fill: #4f2266; }
}
@else if $CFG_EGG_THEME == 'orange'
{
.egg_col_x5_0 { fill: #eeeeee; }
.egg_col_x5_1 { fill: #ffcc80; }
.egg_col_x5_2 { fill: #ffa726; }
.egg_col_x5_3 { fill: #fb8c00; }
.egg_col_x5_4 { fill: #e65100; }
}
@else if $CFG_EGG_THEME == 'halloween'
{
.egg_col_x5_0 { fill: #eeeeee; }
.egg_col_x5_1 { fill: #ffee4a; }
.egg_col_x5_2 { fill: #ffc501; }
.egg_col_x5_3 { fill: #fe9600; }
.egg_col_x5_4 { fill: #03001c; }
}
@else if $CFG_EGG_THEME == 'custom'
{
.egg_col_x9_0 { fill: #F5F5F5; }
.egg_col_x9_1 { fill: #DBDEE0; }
.egg_col_x9_2 { fill: #C2C7CB; }
.egg_col_x9_3 { fill: #AAB0B7; }
.egg_col_x9_4 { fill: #9099A2; }
.egg_col_x9_5 { fill: #77828E; }
.egg_col_x9_6 { fill: #5E6B79; }
.egg_col_x9_7 { fill: #455464; }
.egg_col_x9_8 { fill: #2C3E50; }
}
+148
View File
@@ -0,0 +1,148 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="474px" height="230px" viewBox="0 0 2061 1000">
<defs>
<path id="tree_outer" d="M -200 +000 L +200 +000 L +000 -558 L -200 +000"/>
<path id="tree_inner" d="M -124 -054 L +124 -054 L +000 -399 L -124 -054"/>
<path id="tree_trunk" d="M -027 -135 L +027 -135 L +027 +080 L -027 +080"/>
<!-- https://www.dafont.com/de/caviar-dreams.font (bold) -->
<path id="letter_a" d="m 0,195 a 105 105, 0, 0, 1, +175 -80 l 0,-20 l 35,0 l 0,200 l -35,0 l 0,-30 a 105 105, 0, 0, 1, -175 -70 m 0,-195 m 33,190 a 70 70, 0, 0, 0, 140 0 a 70 70, 0, 1, 0, -140 0" />
<path id="letter_b" d="m 0,0 l 0,300 l 35,0 l 0,-25 a 105 105, 1, 1, 0, 0 -150 l 0,-125 l -35,0 m 42,200 a 70 70, 0, 0, 0, 140 0 a 70 70, 0, 1, 0, -140 0" />
<path id="letter_b2" d="m 0,20 l 0,280 l 35,0 l 0,-25 a 105 105, 1, 1, 0, 0 -150 l 0,-105 l -35,0 m 42,180 a 70 70, 0, 0, 0, 140 0 a 70 70, 0, 1, 0, -140 0" />
<path id="letter_l" d="m 0,0 l 0,300 l 35,0 l 0,-300 l -35,0" />
<path id="letter_c" d="m 200,150 a 105 105, 0, 1, 0, 0 100 l -32,-15 a 70 70, 1, 1, 1, 0 -75 Z" />
<path id="letter_e" d="M 190.58,134.17 A 105 105, 0, 1, 0, 193.93 250.83 L 160.92,237.11 A 70 70, 0, 0, 1, 69.45 255.3 Z M 140.55,134.7 L 44.7,230.55 A 70 70, 0, 0, 1, 140.55,134.7" />
<path id="letter_f" d="m 0,80 l 0,25 l -20,0 l 0,35 l 20,0 l 00,160 l 35,0 l 00,-160 l 30,0 l 0,-35 l -30,0 l 0,-25 a 26 26, 0, 0, 1, 45 -20 l 15,-27 a 57 57, 0, 0, 0, -95 47" />
<path id="letter_k" d="m 0,40 l 0,260 l 35,0 l 0,-100 l 60,+100 l 40,0 l -75,-125 l 50,-70 l -40,0 l -35,49 l -0,-113 l -35,0" />
<path id="letter_o" d="m 0,195 a 105 105, 0, 0, 0, 210 0 a 105 105, 1, 0, 0, -210 0 m 35,0 a 70 70, 0, 0, 0, 140 0 a 70 70, 1, 0, 0, -140 0" />
<path id="letter_r" d="m 0,110 l 0,190 l 35,0 l 0,-110 a 50 50, 0, 0, 1, +50 -50 l 0,-30 a 80 80, 0, 0, 0, -50 +20 l 0,-20 l -35,0" />
<path id="letter_s" d="M 115,131 c -11.6,-30.7 -50.2,-41.3 -73.2,-26.6 c -22.9,14.6 -38.4,43.7 -19.4,71.3 l 52.9,40.6 c 28,18.6 -6.8,72.9 -44.9,23.2 l -26.9,8.2 c 47.8,117.6 165.2,4.6 102.6,-53.1 l -52.4,-40.4 c -2.3,-14.8 10.6,-27.8 26.9,-12.7 z" />
<path id="letter_t" d="m 35,30 l 0,75 l -35,0 l 0,35 l 35,0 l 0,160 l 35,0 l 0,-160 l 35,0 l 0,-35 l -35,0 l 0,-75 l -35,0" />
<path id="letter_y" d="m 0,115 L 70,265 L 20,370 L 60,370 L 180,115 L 140,115 L 93,220 L 40,115 L 0,115" />
</defs>
<circle stroke="#000000" stroke-miterlimit="10" cx="500" cy="500" r="500"/>
<!-- TREE MID -->
<g transform="translate(500 694)">
<path fill="white" id="o2" d="M -200 +000 L +200 +000 L +000 -558 L -200 +000" transform="scale(0 1)"/>
<path fill="white" id="t2" d="M -027 +080 L +027 +080 L +027 +080 L -027 +080" />
<path fill="black" id="i2" d="M -124 -054 L +124 -054 L +000 -399 L -124 -054" transform="scale(0 1)"/>
</g>
<!-- TREE LEFT -->
<g transform="translate(300 730)">
<path fill="white" id="o1" d="M -200 +000 L +200 +000 L +000 -558 L -200 +000" transform="scale(0 1)"/>
<path fill="black" id="i1" d="M -124 -054 L +124 -054 L +000 -399 L -124 -054" transform="scale(0 1)"/>
<path fill="white" id="t1" d="M -027 +080 L +027 +080 L +027 +080 L -027 +080" />
</g>
<!-- TREE RIGHT -->
<g transform="translate(700 730)">
<path fill="white" id="o3" d="M -200 +000 L +200 +000 L +000 -558 L -200 +000" transform="scale(0 1)"/>
<path fill="black" id="i3" d="M -124 -054 L +124 -054 L +000 -399 L -124 -054" transform="scale(0 1)"/>
<path fill="white" id="t3" d="M -027 +080 L +027 +080 L +027 +080 L -027 +080" />
</g>
<use x="1060" y="000" fill="#000" id="txt01" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_b"/>
<use x="1328" y="000" fill="#000" id="txt02" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_l"/>
<use x="1415" y="000" fill="#000" id="txt03" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_a"/>
<use x="1680" y="000" fill="#000" id="txt04" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_c"/>
<use x="1920" y="000" fill="#000" id="txt05" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_k"/>
<use x="1060" y="300" fill="#000" id="txt11" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_f"/>
<use x="1160" y="300" fill="#000" id="txt12" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_o"/>
<use x="1420" y="300" fill="#000" id="txt13" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_r"/>
<use x="1540" y="300" fill="#000" id="txt14" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_e"/>
<use x="1775" y="300" fill="#000" id="txt15" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_s"/>
<use x="1940" y="300" fill="#000" id="txt16" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_t"/>
<use x="1060" y="600" fill="#000" id="txt21" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_b2"/>
<use x="1310" y="600" fill="#000" id="txt22" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_y"/>
<use x="1530" y="600" fill="#000" id="txt23" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_t"/>
<use x="1670" y="600" fill="#000" id="txt24" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_e"/>
<use x="1930" y="600" fill="#000" id="txt25" fill-rule="evenodd" fill-opacity="0" xlink:href="#letter_s"/>
<animate xlink:href="#t1" attributeName="d"
begin="1.00s" dur="1.00s" fill="freeze"
from="M -027 +080 L +027 +080 L +027 +080 L -027 +080"
to=" M -027 -135 L +027 -135 L +027 +080 L -027 +080"
calcMode="spline" keyTimes="0;1" keySplines="0.45 0 0.55 1"/>
<animate xlink:href="#t2" attributeName="d"
begin="1.25s" dur="1.00s" fill="freeze"
from="M -027 +080 L +027 +080 L +027 +080 L -027 +080"
to=" M -027 -135 L +027 -135 L +027 +080 L -027 +080"
calcMode="spline" keyTimes="0;1" keySplines="0.45 0 0.55 1"/>
<animate xlink:href="#t3" attributeName="d"
begin="1.50s" dur="1.00s" fill="freeze"
from="M -027 +080 L +027 +080 L +027 +080 L -027 +080"
to=" M -027 -135 L +027 -135 L +027 +080 L -027 +080"
calcMode="spline" keyTimes="0;1" keySplines="0.45 0 0.55 1"/>
<animateTransform xlink:href="#o1" attributeName="transform" attributeType="XML" type="scale"
begin="2.75s" dur="1.00s" fill="freeze"
from="0 1"
to=" 1 1"
calcMode="spline" keyTimes="0;1" keySplines="0.2 1 0.45 1"/>
<animateTransform xlink:href="#o2" attributeName="transform" attributeType="XML" type="scale"
begin="3.00s" dur="1.00s" fill="freeze"
from="0 1"
to=" 1 1"
calcMode="spline" keyTimes="0;1" keySplines="0.2 1 0.45 1"/>
<animateTransform xlink:href="#o3" attributeName="transform" attributeType="XML" type="scale"
begin="3.25s" dur="1.00s" fill="freeze"
from="0 1"
to=" 1 1"
calcMode="spline" keyTimes="0;1" keySplines="0.2 1 0.45 1"/>
<animateTransform xlink:href="#i1" attributeName="transform" attributeType="XML" type="scale"
begin="2.90s" dur="0.85s" fill="freeze"
from="0 1"
to=" 1 1"
calcMode="spline" keyTimes="0;1" keySplines="0.2 0.9 0.4 1"/>
<animateTransform xlink:href="#i2" attributeName="transform" attributeType="XML" type="scale"
begin="3.15s" dur="0.85s" fill="freeze"
from="0 1"
to=" 1 1"
calcMode="spline" keyTimes="0;1" keySplines="0.2 0.9 0.4 1"/>
<animateTransform xlink:href="#i3" attributeName="transform" attributeType="XML" type="scale"
begin="3.40s" dur="0.85s" fill="freeze"
from="0 1"
to=" 1 1"
calcMode="spline" keyTimes="0;1" keySplines="0.2 0.9 0.4 1"/>
<animate attributeType="xml" xlink:href="#txt01" attributeName="fill-opacity" begin="2.75s" values="0;1" dur="0.8s" fill="freeze" />
<animate attributeType="xml" xlink:href="#txt02" attributeName="fill-opacity" begin="2.80s" values="0;1" dur="0.8s" fill="freeze" />
<animate attributeType="xml" xlink:href="#txt03" attributeName="fill-opacity" begin="2.85s" values="0;1" dur="0.8s" fill="freeze" />
<animate attributeType="xml" xlink:href="#txt04" attributeName="fill-opacity" begin="2.90s" values="0;1" dur="0.8s" fill="freeze" />
<animate attributeType="xml" xlink:href="#txt05" attributeName="fill-opacity" begin="2.95s" values="0;1" dur="0.8s" fill="freeze" />
<animate attributeType="xml" xlink:href="#txt11" attributeName="fill-opacity" begin="3.10s" values="0;1" dur="0.8s" fill="freeze" />
<animate attributeType="xml" xlink:href="#txt12" attributeName="fill-opacity" begin="3.15s" values="0;1" dur="0.8s" fill="freeze" />
<animate attributeType="xml" xlink:href="#txt13" attributeName="fill-opacity" begin="3.20s" values="0;1" dur="0.8s" fill="freeze" />
<animate attributeType="xml" xlink:href="#txt14" attributeName="fill-opacity" begin="3.25s" values="0;1" dur="0.8s" fill="freeze" />
<animate attributeType="xml" xlink:href="#txt15" attributeName="fill-opacity" begin="3.30s" values="0;1" dur="0.8s" fill="freeze" />
<animate attributeType="xml" xlink:href="#txt16" attributeName="fill-opacity" begin="3.35s" values="0;1" dur="0.8s" fill="freeze" />
<animate attributeType="xml" xlink:href="#txt21" attributeName="fill-opacity" begin="3.40s" values="0;1" dur="0.8s" fill="freeze" />
<animate attributeType="xml" xlink:href="#txt22" attributeName="fill-opacity" begin="3.45s" values="0;1" dur="0.8s" fill="freeze" />
<animate attributeType="xml" xlink:href="#txt23" attributeName="fill-opacity" begin="3.50s" values="0;1" dur="0.8s" fill="freeze" />
<animate attributeType="xml" xlink:href="#txt24" attributeName="fill-opacity" begin="3.55s" values="0;1" dur="0.8s" fill="freeze" />
<animate attributeType="xml" xlink:href="#txt25" attributeName="fill-opacity" begin="3.60s" values="0;1" dur="0.8s" fill="freeze" />
</svg>

After

Width:  |  Height:  |  Size: 10 KiB

+5 -1
View File
@@ -57,7 +57,7 @@ require_once (__DIR__ . '/../internals/website.php');
<?php endif; ?>
<?php if ($FRAME_OPTIONS->activeHeader === 'books'): ?>
<a class="tab <?php if ($FRAME_OPTIONS->activeHeader === 'books') echo 'tab_active'; ?>" href="/books">Books</a>
<a class="tab <?php if ($FRAME_OPTIONS->activeHeader === 'books') echo 'tab_active'; ?>" href="/books">Print-Books</a>
<?php endif; ?>
<a class="tab <?php if ($FRAME_OPTIONS->activeHeader === 'webapps') echo 'tab_active'; ?>" href="/webapps">Tools</a>
@@ -66,6 +66,10 @@ require_once (__DIR__ . '/../internals/website.php');
<a class="tab tab_admin" href="/admin">Admin</a>
<?php endif; ?>
<a class="tab <?php if ($FRAME_OPTIONS->activeHeader === 'vcs') echo 'tab_active'; ?>" href="/vcs">git</a>
<a class="tab <?php if ($FRAME_OPTIONS->activeHeader === 'reading') echo 'tab_active'; ?>" href="/reading">Books</a>
<a class="tab <?php if ($FRAME_OPTIONS->activeHeader === 'about') echo 'tab_active'; ?>" href="/about">About</a>
<div class="tab_split" ></div>
+2
View File
@@ -13,6 +13,8 @@ $URL_RULES =
[ 'url' => ['msmain', 'index'], 'target' => 'main.php', 'options' => [ ], 'parameter' => [ ], ],
[ 'url' => ['about'], 'target' => 'about.php', 'options' => [ ], 'parameter' => [ ], ],
[ 'url' => ['msmain', 'about'], 'target' => 'about.php', 'options' => [ ], 'parameter' => [ ], ],
[ 'url' => ['vcs'], 'target' => 'vcs.php', 'options' => [ ], 'parameter' => [ ], ],
[ 'url' => ['reading'], 'target' => 'reading.php', 'options' => [ ], 'parameter' => [ ], ],
[ 'url' => ['login'], 'target' => 'login.php', 'options' => [ ], 'parameter' => [ 'login_target' => '/' ], ],
[ 'url' => ['logout'], 'target' => 'logout.php', 'options' => [ ], 'parameter' => [ 'logout_target' => '/' ], ],
+18 -5
View File
@@ -17,18 +17,31 @@ class EbookHistory implements IWebsiteModule
public function checkConsistency(): array
{
$fn = $this->dir().'/snippet.html';
$fns = [
$this->dir().'/snippet_hist.html',
$this->dir().'/snippet_tier.html'
];
if (!file_exists($fn)) return ['result'=>'err', 'message' => 'File not found: ' . $fn];
foreach ($fns as $fn) {
if (!file_exists($fn)) return ['result'=>'err', 'message' => 'File not found: ' . $fn];
if (filemtime($fn) < time()-(10*24*60*60)) return ['result'=>'warn', 'message' => 'Rendered data is older than 10 days'];
if (filemtime($fn) < time()-(10*24*60*60)) return ['result'=>'warn', 'message' => 'Rendered data is older than 10 days'];
}
return ['result' => 'ok', 'message' => ''];
}
public function get(): string
public function getHistory(): string
{
$fn = $this->dir().'/snippet.html';
$fn = $this->dir().'/snippet_hist.html';
if (!file_exists($fn)) return '';
return file_get_contents($fn);
}
public function getTierlist(): string
{
$fn = $this->dir().'/snippet_tier.html';
if (!file_exists($fn)) return '';
return file_get_contents($fn);
+5 -19
View File
@@ -33,22 +33,6 @@ $FRAME_OPTIONS->activeHeader = 'about';
<!-- - - - - - - - - - - - - - - - - - - - - -->
<div class="boxedcontent">
<div class="bc_header">My git timeline</div>
<div class="bc_data about_egg_container">
<?php
$FRAME_OPTIONS->addScript('/data/javascript/extendedgitgraph.js', true);
echo $SITE->modules->ExtendedGitGraph()->get();
?>
</div>
</div>
<!-- - - - - - - - - - - - - - - - - - - - - -->
<div class="boxedcontent">
<div class="bc_header">Other addresses</div>
@@ -110,11 +94,13 @@ $FRAME_OPTIONS->activeHeader = 'about';
<!-- - - - - - - - - - - - - - - - - - - - - -->
<div class="boxedcontent">
<div class="bc_header">Reading history (incomplete :/)</div>
<div class="bc_header">Blackforestbytes</div>
<div class="bc_data about_ehr_container">
<div class="bc_data about_bfb">
<?php echo $SITE->modules->EbookHistory()->get(); ?>
<a href="https://blackforestbytes.com">
<img src="/data/images/bfb.svg" alt="Blackforestbytes" />
</a>
</div>
+43
View File
@@ -0,0 +1,43 @@
<?php
require_once (__DIR__ . '/../internals/website.php');
/** @var PageFrameOptions $FRAME_OPTIONS */ global $FRAME_OPTIONS;
/** @var URLRoute $ROUTE */ global $ROUTE;
/** @var Website $SITE */ global $SITE;
?>
<?php
$FRAME_OPTIONS->title = 'Reading history';
$FRAME_OPTIONS->canonical_url = 'https://www.mikescher.com/reading';
$FRAME_OPTIONS->activeHeader = 'reading';
?>
<div class="aboutcontent">
<div class="contentheader"><h1>Reading history</h1><hr/></div>
<!-- - - - - - - - - - - - - - - - - - - - - -->
<div class="boxedcontent">
<div class="bc_header">Tierlist <i>(auto-generated from Calibre, probably kinda questionable...)</i></div>
<div class="bc_data about_tier_container">
<?php echo $SITE->modules->EbookHistory()->getTierlist(); ?>
</div>
</div>
<div class="boxedcontent">
<div class="bc_header">Reading history <i>(incomplete :/)</i></div>
<div class="bc_data about_ehr_container">
<?php echo $SITE->modules->EbookHistory()->getHistory(); ?>
</div>
</div>
</div>
+35
View File
@@ -0,0 +1,35 @@
<?php
require_once (__DIR__ . '/../internals/website.php');
/** @var PageFrameOptions $FRAME_OPTIONS */ global $FRAME_OPTIONS;
/** @var URLRoute $ROUTE */ global $ROUTE;
/** @var Website $SITE */ global $SITE;
?>
<?php
$FRAME_OPTIONS->title = 'VCS';
$FRAME_OPTIONS->canonical_url = 'https://www.mikescher.com/vcs';
$FRAME_OPTIONS->activeHeader = 'vcs';
?>
<div class="aboutcontent">
<div class="contentheader"><h1>My git timeline</h1><hr/></div>
<!-- - - - - - - - - - - - - - - - - - - - - -->
<div class="boxedcontent">
<div class="bc_header">My git timeline</div>
<div class="bc_data about_egg_container">
<?php
$FRAME_OPTIONS->addScript('/data/javascript/extendedgitgraph.js', true);
echo $SITE->modules->ExtendedGitGraph()->get();
?>
</div>
</div>
</div>