Files
musenalm/views/transform/site.css
2025-05-30 02:15:36 +02:00

816 lines
19 KiB
CSS

@import "tailwindcss";
@theme {
--font-script: Rancho, ui-serif;
--font-sans: "Source Sans 3", "Merriweather Sans", ui-sans-serif;
--font-serif: "Merriweather", ui-serif;
--color-background: oklch(0.985 0.001 106.423);
--color-background-darker: oklch(0.97 0.001 106.424);
--color-background-dark: oklch(0.923 0.003 48.717);
--color-border-main: oklch(0.97 0.001 106.424);
--color-border-secondary: oklch(0.923 0.003 48.717);
--color-text: oklch(0.21 0.034 264.665);
--color-text-strong: oklch(0 0 0);
--color-text-muted: oklch(0.373 0.034 259.733);
--color-text-disabled: oklch(0.872 0.01 258.338);
--color-text-subtle: oklch(0.707 0.022 261.325);
--color-accent-blue-500: oklch(0.623 0.214 259.815);
--color-accent-blue-100: oklch(0.932 0.032 255.585);
}
/*
The default border color has changed to `currentColor` in Tailwind CSS v4,
so we've added these compatibility styles to make sure everything still
looks the same as it did with Tailwind CSS v3.
If we ever want to remove these styles, we need to add an explicit border
color utility to any element that depends on these defaults.
*/
@layer base {
*,
::after,
::before,
::backdrop,
::file-selector-button {
border-color: var(--color-gray-200, currentColor);
}
}
@utility font-variant-small-caps {
font-variant-caps: small-caps;
}
@layer components {
html {
font-size: 16px;
scroll-behavior: auto !important;
}
@media (max-width: 1280px) {
html {
font-size: 14px;
}
}
@media (max-width: 640px) {
html {
font-size: 12px;
}
}
body {
@apply bg-stone-50;
}
* {
@apply normal-nums;
}
h1,
h2,
h3,
h4 {
@apply font-serif;
}
a {
@apply hyphens-none underline decoration-dotted hover:decoration-solid text-slate-700 hover:text-slate-900 underline-offset-3;
}
ul {
@apply my-2;
}
li {
@apply ml-14 list-disc;
}
label {
@apply select-none;
}
#mainmenu nav > a {
@apply hover:!border-zinc-200;
}
#mainmenu nav > * {
@apply border-b-4 border-transparent;
}
#mainmenu nav > button[aria-current="true"] {
@apply !bg-slate-200;
}
#mainmenu nav a[aria-current="page"] {
@apply text-slate-800;
}
#mainmenu nav a[aria-current="page"] {
@apply !border-zinc-300;
}
main {
@apply grow shrink-0;
}
.small-caps {
@apply font-variant-small-caps;
}
#reihenfilter .filter-list-list {
@apply border-b border-zinc-300 min-h-[17rem];
}
#alphabet a[aria-current="page"]:not(.inactive) {
@apply pb-3 pt-2 font-bold italic !bg-stone-50 relative -bottom-3 border-b;
}
#alphabet a:hover:not([aria-current="page"]:not(.inactive)) {
@apply pb-1 pt-0.5 !bg-stone-50 relative !text-stone-900;
}
#alphabet a.inactive {
@apply !text-gray-400;
}
#alphabet a[aria-current="page"]:not(.inactive):before {
aspect-ratio: 1;
clip-path: polygon(100% 80%, 80% 100%, 100% 100%);
content: " ";
@apply bg-red-600 absolute -bottom-[1px] -right-[1px] h-full z-30;
}
.headingcontainer:before {
content: "";
@apply bg-zinc-300 w-[50%] absolute top-0 left-[50%] h-[1px];
}
.headingcontainer {
@apply mt-16 border-r border-zinc-300 relative w-full max-w-(--breakpoint-xl) mx-auto;
}
.headingcontainer h1 {
@apply text-3xl font-bold px-3 bg-stone-50 relative -translate-y-[50%] w-min whitespace-nowrap mx-auto;
}
.filter-list-list .filter-list-item[aria-current="page"] {
@apply border-l-4 border-zinc-300 font-bold;
}
.notifier {
@apply bg-stone-100 text-center text-base px-2.5 py-1 font-sans rounded;
}
.notifier i {
@apply inline-block pr-0.5;
}
.notifier .filterterm {
@apply font-bold;
}
.headingcontainer .backbutton {
@apply ml-4 bg-stone-100 py-0.5 px-2.5 rounded font-sans text-base text-center;
}
.container-normal {
@apply w-full max-w-(--breakpoint-xl) mx-auto px-3 py-4 relative;
}
.container-oversize {
@apply w-full max-w-(--breakpoint-2xl) mx-auto px-3 py-4 relative;
}
.container-extraoversize {
@apply w-full max-w-[112rem] mx-auto relative;
}
.text {
@apply font-serif hyphens-auto;
}
.text p {
@apply text-lg hyphens-auto max-w-[70ch];
}
.text ul {
@apply list-disc ml-0 max-w-[70ch];
}
.text ol {
@apply list-decimal ml-0 max-w-[70ch];
}
.text p:first-of-type {
@apply mt-0;
}
.text p:last-of-type {
@apply mb-0;
}
.text p + p {
@apply mt-1;
}
.text p + ul {
@apply mt-1;
}
.text h1 {
@apply text-3xl font-bold mt-6 mb-1.5 hyphens-none leading-normal;
}
.text h2 {
@apply text-xl font-bold mt-3 mb-1.5 hyphens-none;
}
.text h3 {
@apply text-lg font-bold mt-3 mb-1.5 hyphens-none;
}
.text p + ol {
@apply mt-1;
}
.text p + blockquote {
@apply mt-1;
}
.text p + pre {
@apply mt-1;
}
.text p + p:not(.indented p, p:first-of-type) {
@apply indent-6;
}
.indented p {
@apply -indent-3.5 ml-3.5;
}
#indexpage {
background-image: url("/assets/bg.jpg");
@apply h-full w-full;
}
#introtext p:not(:first-child) {
@apply mt-0.5 !indent-6;
}
#searchnav > a:nth-of-type(1) {
@apply ml-6;
}
#searchnav > a {
@apply odd:bg-stone-100 even:bg-zinc-100 mx-1.5 border-zinc-300 border-x border-t px-2.5 no-underline transition-all duration-75 py-0.5 text-lg;
}
#searchnav > a[aria-current="page"]:not(.inactive) {
@apply font-bold italic !bg-stone-50 relative -bottom-2 border-b z-20;
}
#searchnav > a:hover:not([aria-current="page"]:not(.inactive)) {
@apply pb-2 !bg-stone-50 relative;
}
#searchheading:before {
content: "";
@apply bg-zinc-300 w-[80%] absolute bottom-0 right-[20%] h-[1px] z-10;
}
#searchform:before {
content: "";
@apply bg-zinc-300 w-[30%] absolute bottom-0 right-[70%] h-[1px] z-10;
}
#searchform input:not(#serachform #simplesearchbox input) {
@apply w-full mx-auto px-2 py-1 border-zinc-600 border;
}
#searchform button {
@apply bg-stone-900 text-gray-200 text-base min-w-36 rounded font-sans transition-all duration-75;
}
#searchform button:hover:not(:disabled) {
@apply cursor-pointer bg-slate-800 text-white;
}
#searchform button:disabled {
@apply bg-stone-400 text-white cursor-not-allowed;
}
#searchform .selectgroup {
@apply col-span-12 w-full flex flex-row gap-x-6;
}
#searchform .selectgroup .selectgroup-option {
@apply flex flex-row select-none gap-x-1.5;
}
#searchform .selectgroup .selectgroup-option label {
@apply whitespace-nowrap;
}
#searchform .selectgroup input:not(:checked) + label {
@apply decoration-slate-900 line-through;
}
#searchform .searchformcolumn {
}
#searchfilter .filter-list-list {
@apply text-base;
}
#searchfilter .filter-list-list {
@apply border shadow-inner;
}
#searchpills {
@apply flex flex-row gap-x-2.5;
}
#searchpills filter-pill .filter-pill {
@appply px-2.5 rounded-lg bg-orange-300;
}
#searchresults .filter-list-item[aria-current="page"] {
@apply text-orange-800 border-orange-900 bg-orange-100 pointer-events-none;
}
#persontype a {
@apply px-1.5 border-b-[5px] border-transparent hover:border-zinc-200 no-underline font-serif mx-2.5;
}
#persontype a[aria-current="page"]:not(#persontype.inactive a) {
@apply font-bold border-zinc-300;
}
#persontype.inactive a {
@apply text-gray-500;
}
#personheader:before {
content: "";
@apply bg-zinc-300 w-[50%] absolute bottom-0 left-[50%] h-[1px];
}
#personalphabet:after {
content: "";
@apply absolute right-0 top-0 h-full border-r border-zinc-300;
}
#personalphabet a {
@apply box-border odd:bg-stone-100 even:bg-zinc-100 mb-1 border-zinc-300 border-y border-l pl-2 pr-3 no-underline transition-all duration-75 text-center text-lg overflow-visible relative;
}
#personalphabet a[aria-current="page"]:not(.inactive) {
@apply font-bold italic !bg-stone-50 relative -mr-4 border-r border-b pl-3 z-20 text-xl;
}
#personalphabet a[aria-current="page"]:not(.inactive):before {
aspect-ratio: 1;
clip-path: polygon(100% 66%, 66% 100%, 100% 100%);
content: " ";
@apply bg-red-600 absolute -bottom-[1px] -right-[1px] h-full z-30;
}
#personalphabet a:hover:not([aria-current="page"]:not(.inactive)) {
@apply !bg-stone-50 -ml-2 relative text-stone-900;
}
#personalphabet a.inactive {
@apply text-gray-400;
}
#personlist [aria-current="location"] a {
@apply !text-red-700;
}
#entrydata .fieldlabel {
@apply font-bold font-serif text-base whitespace-nowrap min-w-48 grow-0 shrink-0 pt-0.5;
}
#entrydata .fieldvalue {
@apply font-serif text-left grow align-top max-w-[60ch];
}
#entrydata .entryrow {
@apply flex flex-row gap-x-3.5 items-start py-0.5;
}
#entrydata {
@apply relative;
}
#entrydata:not(#entrydata.contentsentrydata) {
@apply border border-zinc-300;
}
#entrydata.contentsentrydata {
@apply border-t border-r border-zinc-300 pb-16;
}
#entrydata.contentsentrydata:after {
content: "";
@apply absolute top-0 left-0 w-[1px] h-[50%] bg-zinc-300;
}
#entrydata.contentsentrydata:before {
content: "";
@apply absolute bottom-0 right-0 h-[1px] w-[50%] bg-zinc-300;
}
int-link {
@apply text-slate-700 hover:text-slate-900 underline decoration-dotted hover:decoration-solid;
}
#breadcrumbs {
@apply w-full max-w-(--breakpoint-xl) mx-auto px-3 pb-4 relative pt-1.5;
}
#breadcrumbs > div {
@apply flex flex-row gap-x-2.5 justify-between;
}
#breadcrumbs .backbutton {
@apply ml-4 bg-stone-100 py-0.5 px-2.5 rounded font-sans text-base text-center mr-1.5;
}
input:disabled {
@apply italic text-gray-500;
}
#extendedsearchcolumn {
@apply grid grid-cols-12 gap-y-3 w-full gap-x-4;
}
#extendedsearchcolumn input {
@apply w-full px-2 py-1 border-zinc-600 border col-span-9;
}
#extendedsearchcolumn select {
@apply w-full px-2 py-1 border-zinc-600 border col-span-9;
}
#extendedsearchcolumn button {
@apply col-start-4 col-span-4 py-2;
}
#extendedsearchcolumn label {
@apply col-span-3 bg-stone-200 align-middle px-2.5 text-slate-900 items-center flex text-base;
}
.content .fields {
@apply grid grid-cols-10 gap-y-0.5 w-full gap-x-4;
}
.content .fieldlabel {
@apply col-span-1 font-bold whitespace-nowrap grow-0 shrink-0 font-sans text-sm align-baseline mt-1 text-right;
}
.content .fieldvalue {
@apply col-span-9 font-serif text-left grow align-top max-w-[60ch];
}
.content {
@apply text-base;
}
#almanachcontents .content {
@apply border-b-8 border-stone-50;
}
#almanachcontents .columnone {
@apply bg-stone-50 pt-2 pr-3 mr-1;
}
#almanachcontents .columntwo {
@apply bg-stone-100 py-4 pl-6 ml-1;
}
#almanachcontents .columnthree {
@apply bg-stone-100 pr-6 py-4;
/*direction: rtl;*/
}
body .request-indicator {
@apply !hidden;
}
.spinning {
animation: spin 1s ease-out infinite;
}
body.htmx-request #simplesearchform #sumbmitbutton {
@apply cursor-wait pointer-events-none;
}
body.htmx-request .request-indicator {
@apply !inline-block;
}
.tab-list-head[aria-pressed="true"] {
@apply !text-slate-900 bg-stone-50;
}
.user-chooser a {
@apply px-4 py-2 no-underline text-gray-500 hover:text-slate-900 font-serif font-bold border-l-4 border-transparent hover:bg-slate-100 transition-all duration-75 rounded-xs;
}
.user-chooser a[aria-current="page"] {
@apply text-slate-900 font-bold bg-slate-100 border-slate-900 shadow-sm;
}
.user-chooser a[aria-current="page"]:nth-child(1) {
@apply border-blue-500;
}
.user-chooser a[aria-current="page"]:nth-child(2) {
@apply border-orange-600;
}
.user-chooser a[aria-current="page"]:nth-child(3) {
@apply border-red-600;
}
.user-mgmt thead th {
@apply text-left font-bold border-b-2 border-slate-800 py-2 px-3;
}
.user-mgmt tbody tr td {
@apply px-3 py-1.5;
}
.user-mgmt tbody tr:nth-child(odd) td {
@apply bg-slate-100;
}
.user-mgmt tbody tr:nth-child(even) td {
@apply bg-slate-50;
}
.user-mgmt tbody tr td:last-of-type {
@apply align-middle text-right pr-4;
}
.user-mgmt tbody tr.deactivated td:not(:last-of-type) {
@apply text-gray-400 line-through;
}
.user-mgmt form button,
.user-mgmt .edit-button {
@apply bg-slate-700 text-gray-200 text-base rounded-xs font-sans transition-all duration-75 px-3 py-1.5 hover:bg-slate-800 hover:text-white cursor-pointer;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
80% {
transform: rotate(360deg);
} /* Most rotation happens early */
100% {
transform: rotate(360deg);
} /* Pause at the final position */
}
/* Multi-Select-Role example styles */
.msr-selected-items-container {
@apply rounded-md;
}
.msr-placeholder-no-selection-text {
@apply text-sm text-gray-500 italic px-2 py-1;
}
.msr-input-area-wrapper {
@apply p-2 rounded-md;
}
.msr-input-area-wrapper.msr-input-area-default-border {
@apply border border-gray-300;
}
.msr-input-area-wrapper.msr-input-area-default-border:focus-within {
@apply focus-within:border-gray-500 focus-within:ring-1 focus-within:ring-gray-400;
}
.msr-input-area-wrapper.msr-input-area-staged {
@apply border border-transparent;
}
.msr-text-input {
@apply bg-transparent text-sm placeholder-gray-400;
}
.msr-selected-item-pill {
@apply bg-gray-200 text-gray-700 px-3 py-[0.3rem] rounded-md text-sm inline-flex items-center m-0.5;
}
.msr-item-name {
@apply font-medium;
}
.msr-item-additional-data {
@apply text-xs ml-1 text-gray-600;
}
.msr-selected-item-role {
@apply font-semibold text-xs ml-1 text-gray-800;
}
.msr-selected-item-delete-btn {
@apply bg-transparent border-none text-gray-500 text-lg leading-none px-1 cursor-pointer opacity-60 transition-opacity duration-200;
}
.msr-selected-item-delete-btn:hover {
@apply hover:opacity-100 hover:text-gray-900;
}
.msr-staged-item-pill {
@apply bg-gray-100 text-gray-800 px-2 py-1 rounded-md text-sm font-medium;
}
.msr-staged-item-text {
@apply mr-2;
}
.msr-staged-role-select {
@apply px-2 py-1 text-sm rounded-md border border-gray-300 bg-white outline-none text-gray-700;
}
.msr-staged-role-select:focus {
@apply focus:border-gray-500 focus:ring-1 focus:ring-gray-400;
}
.msr-staged-cancel-btn {
@apply w-5 h-5 bg-gray-200 text-gray-600 rounded-full text-sm leading-none cursor-pointer;
}
.msr-staged-cancel-btn:hover {
@apply hover:bg-gray-300 hover:text-gray-800;
}
.msr-pre-add-button {
@apply w-10 h-[42px] text-xl rounded-md bg-gray-50 text-gray-700 border border-gray-300 font-semibold outline-none;
}
.msr-pre-add-button:focus {
@apply focus:border-gray-500 focus:ring-1 focus:ring-gray-400;
}
.msr-pre-add-button:hover {
@apply hover:bg-gray-100;
}
.msr-pre-add-button:disabled {
@apply disabled:bg-gray-200 disabled:text-gray-400 disabled:cursor-not-allowed disabled:border-gray-200;
}
.msr-pre-add-button.hidden {
@apply hidden;
}
.msr-add-button {
@apply px-4 py-2 text-sm rounded-md bg-gray-600 text-white font-medium;
}
.msr-add-button:hover {
@apply hover:bg-gray-700;
}
.msr-add-button:disabled {
@apply disabled:bg-gray-300 disabled:cursor-not-allowed;
}
.msr-add-button.hidden {
@apply hidden;
}
.msr-options-list {
@apply bg-white border border-gray-300 rounded-md shadow-md;
}
.msr-options-list.hidden {
@apply hidden;
}
.msr-option-item {
@apply px-3 py-2 text-sm cursor-pointer transition-colors duration-75;
}
.msr-option-item:hover {
@apply bg-gray-100 text-gray-800;
}
.msr-option-item-highlighted {
@apply bg-gray-100 text-gray-800;
}
.msr-option-item-name {
@apply font-medium;
}
.msr-option-item-detail {
@apply text-xs ml-2 text-gray-500;
}
.msr-option-item-highlighted .msr-option-item-detail,
.msr-option-item:hover .msr-option-item-detail {
/* Ensure detail text color changes on hover too */
@apply text-gray-600;
}
multi-select-role[disabled] {
/* This remains standard CSS as Tailwind's disabled: variant is for native elements */
opacity: 0.6;
cursor: not-allowed;
}
.msr-hidden-select {
/* No specific styling needed as it's visually hidden by JS/inline style */
}
/* --- MultiSelectSimple Component Base Styles (using @apply) --- */
.mss-component-wrapper {
/* 'relative' is set inline for positioning dropdown */
}
.mss-selected-items-container {
@apply border border-gray-300 p-1.5 rounded;
/* Tailwind classes from component: flex flex-wrap gap-1 mb-1 min-h-[38px] */
}
.mss-no-items-text {
@apply italic text-xs text-gray-500 p-1 w-full; /* Adjusted font size slightly to match 'xs' */
}
.mss-selected-item-pill {
@apply bg-gray-200 text-gray-800 py-0.5 px-2 rounded text-xs leading-5; /* Adjusted font size and padding */
/* Tailwind classes from component: flex items-center */
}
.mss-selected-item-text {
/* Base styles for text part of the pill */
}
.mss-selected-item-pill-detail {
@apply ml-1 opacity-75 text-xs text-gray-600;
}
.mss-selected-item-pill-detail.hidden {
@apply hidden;
}
.mss-selected-item-delete-btn {
@apply bg-transparent border-none text-gray-600 opacity-70 cursor-pointer ml-1 text-base leading-none align-middle hover:opacity-100 hover:text-gray-900 disabled:opacity-40 disabled:cursor-not-allowed;
}
.mss-input-controls-container {
/* Tailwind classes from component: flex items-center space-x-2 */
}
.mss-input-wrapper {
@apply border border-gray-300 rounded;
/* Tailwind classes from component: relative flex items-center flex-grow */
}
.mss-input-wrapper-focused {
@apply border-indigo-600 ring-1 ring-indigo-600; /* Using ring for focus shadow */
}
.mss-text-input {
@apply py-1.5 px-2 text-sm;
/* Tailwind classes from component: w-full outline-none bg-transparent */
}
.mss-text-input::placeholder {
@apply text-gray-400 italic;
}
.mss-create-new-button {
@apply bg-gray-100 text-gray-700 border border-gray-300 py-1 px-1.5 text-sm rounded hover:bg-gray-200 hover:border-gray-400 disabled:bg-gray-50 disabled:text-gray-400 disabled:border-gray-200 disabled:opacity-70 disabled:cursor-not-allowed;
}
.mss-create-new-button.hidden {
@apply !hidden; /* Ensure it hides */
}
.mss-options-list {
@apply bg-white border border-gray-300 rounded shadow-md; /* Using shadow-md as a softer default */
/* Tailwind classes from component: absolute z-20 w-full max-h-60 overflow-y-auto mt-1 hidden */
}
.mss-option-item {
@apply text-gray-700 py-1.5 px-2.5 text-sm cursor-pointer transition-colors duration-75 hover:bg-gray-100;
}
.mss-option-item-name {
@apply font-medium;
}
.mss-option-item-detail {
@apply text-gray-500 text-xs ml-1.5;
}
.mss-option-item-highlighted {
@apply bg-indigo-100 text-indigo-800;
}
.mss-option-item-highlighted .mss-option-item-name {
/* @apply font-medium; */ /* Already set by .mss-option-item-name, inherit color from parent */
}
.mss-option-item-highlighted .mss-option-item-detail {
@apply text-indigo-700;
}
.mss-hidden-select {
/* Styles are inline in _render for !important, no change needed here */
}
multi-select-simple[disabled] {
@apply opacity-60; /* Adjusted opacity */
}
multi-select-simple[disabled] .mss-selected-items-container {
@apply bg-gray-100;
}
multi-select-simple[disabled] .mss-selected-item-pill {
@apply bg-gray-300 text-gray-500;
}
multi-select-simple[disabled] .mss-selected-item-delete-btn {
@apply text-gray-400;
}
}