add edu-feed

This commit is contained in:
@s.roertgen 2024-08-20 21:19:55 +02:00
parent 570eed0f41
commit 960200d410
11 changed files with 3755 additions and 230 deletions

View file

@ -981,6 +981,70 @@ html {
--tw-border-opacity: 0.2;
}
.collapse:not(td):not(tr):not(colgroup) {
visibility: visible;
}
.collapse {
position: relative;
display: grid;
overflow: hidden;
grid-template-rows: auto 0fr;
transition: grid-template-rows 0.2s;
width: 100%;
border-radius: var(--rounded-box, 1rem);
}
.collapse-title,
.collapse > input[type="checkbox"],
.collapse > input[type="radio"],
.collapse-content {
grid-column-start: 1;
grid-row-start: 1;
}
.collapse > input[type="checkbox"],
.collapse > input[type="radio"] {
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
opacity: 0;
}
.collapse-content {
visibility: hidden;
grid-column-start: 1;
grid-row-start: 2;
min-height: 0px;
transition: visibility 0.2s;
transition: padding 0.2s ease-out,
background-color 0.2s ease-out;
padding-left: 1rem;
padding-right: 1rem;
cursor: unset;
}
.collapse[open],
.collapse-open,
.collapse:focus:not(.collapse-close) {
grid-template-rows: auto 1fr;
}
.collapse:not(.collapse-close):has(> input[type="checkbox"]:checked),
.collapse:not(.collapse-close):has(> input[type="radio"]:checked) {
grid-template-rows: auto 1fr;
}
.collapse[open] > .collapse-content,
.collapse-open > .collapse-content,
.collapse:focus:not(.collapse-close) > .collapse-content,
.collapse:not(.collapse-close) > input[type="checkbox"]:checked ~ .collapse-content,
.collapse:not(.collapse-close) > input[type="radio"]:checked ~ .collapse-content {
visibility: visible;
min-height: -moz-fit-content;
min-height: fit-content;
}
.dropdown {
position: relative;
display: inline-block;
@ -1117,18 +1181,6 @@ html {
}
}
.btn-outline.btn-primary:hover {
--tw-text-opacity: 1;
color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));
}
@supports (color: color-mix(in oklab, black, black)) {
.btn-outline.btn-primary:hover {
background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);
border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);
}
}
.btn-outline.btn-warning:hover {
--tw-text-opacity: 1;
color: var(--fallback-wac,oklch(var(--wac)/var(--tw-text-opacity)));
@ -1372,22 +1424,6 @@ html {
opacity: 1;
}
.modal-action {
display: flex;
margin-top: 1.5rem;
justify-content: flex-end;
}
.modal-toggle {
position: fixed;
height: 0px;
width: 0px;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
opacity: 0;
}
:root:has(:is(.modal-open, .modal:target, .modal-toggle:checked + .modal, .modal[open])) {
overflow: hidden;
scrollbar-gutter: stable;
@ -1473,6 +1509,20 @@ html {
border-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-border-opacity)));
}
.badge-primary {
--tw-border-opacity: 1;
border-color: var(--fallback-p,oklch(var(--p)/var(--tw-border-opacity)));
--tw-bg-opacity: 1;
background-color: var(--fallback-p,oklch(var(--p)/var(--tw-bg-opacity)));
--tw-text-opacity: 1;
color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));
}
.badge-outline.badge-primary {
--tw-text-opacity: 1;
color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity)));
}
.btm-nav > *.disabled,
.btm-nav > *[disabled] {
pointer-events: none;
@ -1506,10 +1556,6 @@ html {
border-color: var(--btn-color, var(--fallback-b2));
}
.btn-primary {
--btn-color: var(--fallback-p);
}
.btn-warning {
--btn-color: var(--fallback-wa);
}
@ -1520,11 +1566,6 @@ html {
}
@supports (color: color-mix(in oklab, black, black)) {
.btn-outline.btn-primary.btn-active {
background-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);
border-color: color-mix(in oklab, var(--fallback-p,oklch(var(--p)/1)) 90%, black);
}
.btn-outline.btn-warning.btn-active {
background-color: color-mix(in oklab, var(--fallback-wa,oklch(var(--wa)/1)) 90%, black);
border-color: color-mix(in oklab, var(--fallback-wa,oklch(var(--wa)/1)) 90%, black);
@ -1542,17 +1583,7 @@ html {
outline-offset: 2px;
}
.btn-primary {
--tw-text-opacity: 1;
color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));
outline-color: var(--fallback-p,oklch(var(--p)/1));
}
@supports (color: oklch(0% 0 0)) {
.btn-primary {
--btn-color: var(--p);
}
.btn-warning {
--btn-color: var(--wa);
}
@ -1602,16 +1633,6 @@ html {
background-color: var(--fallback-bc,oklch(var(--bc)/0.2));
}
.btn-outline.btn-primary {
--tw-text-opacity: 1;
color: var(--fallback-p,oklch(var(--p)/var(--tw-text-opacity)));
}
.btn-outline.btn-primary.btn-active {
--tw-text-opacity: 1;
color: var(--fallback-pc,oklch(var(--pc)/var(--tw-text-opacity)));
}
.btn-outline.btn-warning {
--tw-text-opacity: 1;
color: var(--fallback-wa,oklch(var(--wa)/var(--tw-text-opacity)));
@ -1800,6 +1821,130 @@ html {
}
}
details.collapse {
width: 100%;
}
details.collapse summary {
position: relative;
display: block;
outline: 2px solid transparent;
outline-offset: 2px;
}
details.collapse summary::-webkit-details-marker {
display: none;
}
.collapse:focus-visible {
outline-style: solid;
outline-width: 2px;
outline-offset: 2px;
outline-color: var(--fallback-bc,oklch(var(--bc)/1));
}
.collapse:has(.collapse-title:focus-visible),
.collapse:has(> input[type="checkbox"]:focus-visible),
.collapse:has(> input[type="radio"]:focus-visible) {
outline-style: solid;
outline-width: 2px;
outline-offset: 2px;
outline-color: var(--fallback-bc,oklch(var(--bc)/1));
}
.collapse-arrow > .collapse-title:after {
position: absolute;
display: block;
height: 0.5rem;
width: 0.5rem;
--tw-translate-y: -100%;
--tw-rotate: 45deg;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
transition-duration: 150ms;
transition-duration: 0.2s;
top: 1.9rem;
inset-inline-end: 1.4rem;
content: "";
transform-origin: 75% 75%;
box-shadow: 2px 2px;
pointer-events: none;
}
.collapse-plus > .collapse-title:after {
position: absolute;
display: block;
height: 0.5rem;
width: 0.5rem;
transition-property: all;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
transition-duration: 300ms;
top: 0.9rem;
inset-inline-end: 1.4rem;
content: "+";
pointer-events: none;
}
.collapse:not(.collapse-open):not(.collapse-close) > input[type="checkbox"],
.collapse:not(.collapse-open):not(.collapse-close) > input[type="radio"]:not(:checked),
.collapse:not(.collapse-open):not(.collapse-close) > .collapse-title {
cursor: pointer;
}
.collapse:focus:not(.collapse-open):not(.collapse-close):not(.collapse[open]) > .collapse-title {
cursor: unset;
}
.collapse-title {
position: relative;
}
:where(.collapse > input[type="checkbox"]),
:where(.collapse > input[type="radio"]) {
z-index: 1;
}
.collapse-title,
:where(.collapse > input[type="checkbox"]),
:where(.collapse > input[type="radio"]) {
width: 100%;
padding: 1rem;
padding-inline-end: 3rem;
min-height: 3.75rem;
transition: background-color 0.2s ease-out;
}
.collapse[open] > :where(.collapse-content),
.collapse-open > :where(.collapse-content),
.collapse:focus:not(.collapse-close) > :where(.collapse-content),
.collapse:not(.collapse-close) > :where(input[type="checkbox"]:checked ~ .collapse-content),
.collapse:not(.collapse-close) > :where(input[type="radio"]:checked ~ .collapse-content) {
padding-bottom: 1rem;
transition: padding 0.2s ease-out,
background-color 0.2s ease-out;
}
.collapse[open].collapse-arrow > .collapse-title:after,
.collapse-open.collapse-arrow > .collapse-title:after,
.collapse-arrow:focus:not(.collapse-close) > .collapse-title:after,
.collapse-arrow:not(.collapse-close) > input[type="checkbox"]:checked ~ .collapse-title:after,
.collapse-arrow:not(.collapse-close) > input[type="radio"]:checked ~ .collapse-title:after {
--tw-translate-y: -50%;
--tw-rotate: 225deg;
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.collapse[open].collapse-plus > .collapse-title:after,
.collapse-open.collapse-plus > .collapse-title:after,
.collapse-plus:focus:not(.collapse-close) > .collapse-title:after,
.collapse-plus:not(.collapse-close) > input[type="checkbox"]:checked ~ .collapse-title:after,
.collapse-plus:not(.collapse-close) > input[type="radio"]:checked ~ .collapse-title:after {
content: "";
}
.dropdown.dropdown-open .dropdown-content,
.dropdown:focus .dropdown-content,
.dropdown:focus-within .dropdown-content {
@ -2051,12 +2196,6 @@ html {
transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));
}
.modal-action > :not([hidden]) ~ :not([hidden]) {
--tw-space-x-reverse: 0;
margin-right: calc(0.5rem * var(--tw-space-x-reverse));
margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse)));
}
@keyframes modal-pop {
0% {
opacity: 0;
@ -2162,10 +2301,6 @@ html {
padding-right: 0.438rem;
}
.btn-block {
width: 100%;
}
.btn-circle:where(.btn-xs) {
height: 1.5rem;
width: 1.5rem;
@ -2384,6 +2519,14 @@ html {
border-bottom-left-radius: 0px;
}
.visible {
visibility: visible;
}
.collapse {
visibility: collapse;
}
.relative {
position: relative;
}
@ -2392,6 +2535,10 @@ html {
z-index: 1;
}
.m-1 {
margin: 0.25rem;
}
.m-2 {
margin: 0.5rem;
}
@ -2416,14 +2563,22 @@ html {
display: flex;
}
.hidden {
display: none;
.h-48 {
height: 12rem;
}
.h-5 {
height: 1.25rem;
}
.h-64 {
height: 16rem;
}
.min-h-\[620px\] {
min-height: 620px;
}
.w-10 {
width: 2.5rem;
}
@ -2436,6 +2591,10 @@ html {
width: 13rem;
}
.w-64 {
width: 16rem;
}
.w-96 {
width: 24rem;
}
@ -2456,6 +2615,22 @@ html {
flex: none;
}
@keyframes flyIn {
0% {
transform: translateX(-100%);
opacity: 0;
}
100% {
transform: translateX(0);
opacity: 1;
}
}
.animate-flyIn {
animation: flyIn 0.5s ease-out forwards;
}
.cursor-pointer {
cursor: pointer;
}
@ -2484,14 +2659,20 @@ html {
justify-content: center;
}
.justify-between {
justify-content: space-between;
}
.gap-2 {
gap: 0.5rem;
}
.truncate {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.break-all {
word-break: break-all;
}
.rounded {
border-radius: 0.25rem;
}
@ -2526,11 +2707,26 @@ html {
background-color: var(--fallback-b1,oklch(var(--b1)/var(--tw-bg-opacity)));
}
.bg-base-200 {
--tw-bg-opacity: 1;
background-color: var(--fallback-b2,oklch(var(--b2)/var(--tw-bg-opacity)));
}
.bg-green-500 {
--tw-bg-opacity: 1;
background-color: rgb(34 197 94 / var(--tw-bg-opacity));
}
.object-contain {
-o-object-fit: contain;
object-fit: contain;
}
.object-cover {
-o-object-fit: cover;
object-fit: cover;
}
.p-2 {
padding: 0.5rem;
}
@ -2554,6 +2750,10 @@ html {
font-weight: 700;
}
.font-medium {
font-weight: 500;
}
.text-black {
--tw-text-opacity: 1;
color: rgb(0 0 0 / var(--tw-text-opacity));
@ -2584,3 +2784,7 @@ html {
--tw-text-opacity: 1;
color: rgb(0 0 0 / var(--tw-text-opacity));
}
.hover\:underline:hover {
text-decoration-line: underline;
}