| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- @tailwind base;
- @tailwind components;
- @tailwind utilities;
- @layer base {
- /* Hide native spinner buttons on every number input app-wide. The
- team prefers keyboard typing over the tiny, inconsistent UA
- controls. */
- input[type="number"]::-webkit-outer-spin-button,
- input[type="number"]::-webkit-inner-spin-button {
- -webkit-appearance: none;
- margin: 0;
- }
- input[type="number"] {
- -moz-appearance: textfield;
- appearance: textfield;
- }
- }
- @layer utilities {
- /* Phase 13: the Focus filter temporarily hides entire sw columns when the
- focused worker has no assignment on any visible row. Separate from the
- .hidden set driven by the Columns dropdown so clearing Focus restores
- the user's manual column picks. */
- .focus-auto-hidden {
- display: none;
- }
- }
- @layer components {
- /* Phase 15: big-screen / beamer presentation scope. Applied via
- views/sprints/present.php on the root <main>. Tightens typography
- and cell padding so the task table fits the viewport without
- horizontal scroll at 1920×1080; hides drag handles and per-row
- delete buttons (not meaningful during a group discussion). */
- .beamer-root table {
- table-layout: fixed;
- font-size: clamp(0.75rem, 0.95vw, 1.05rem);
- }
- .beamer-root td,
- .beamer-root th {
- padding: 0.25rem 0.35rem;
- }
- .beamer-root .handle,
- .beamer-root [data-delete-task] {
- display: none;
- }
- /* JS-driven toggle (sprint-planner.js): when the rendered task table
- is wider than the viewport, rotate worker-column headers to save
- horizontal space. Leaves non-worker headers (Task / Owner / Prio
- / Tot) untouched. */
- .beamer-vertical-headers thead th[data-sort-col^="sw-"] {
- writing-mode: vertical-rl;
- transform: rotate(180deg);
- padding: 0.5rem 0.25rem;
- }
- /* Phase 18: per-cell task-assignment status. The colour class
- applies directly to the <td> — no nested wrapper — so the cell's
- table-layout and the input it contains render exactly as they
- did before the feature, with only the cell background tinting.
- The four .assign-status-* class names are interpolated server-
- side ("assign-status-<?= $st ?>"), so they're held in
- tailwind.config.js's safelist; otherwise the JIT prunes them. */
- .assign-status-zugewiesen { /* default: no override, stays whatever
- the row's bg is */ }
- .assign-status-gestartet { background-color: theme('colors.yellow.200'); }
- .assign-status-abgeschlossen { background-color: theme('colors.green.200'); }
- .assign-status-abgebrochen { background-color: theme('colors.red.200'); }
- .dark .assign-status-gestartet { background-color: theme('colors.yellow.700'); }
- .dark .assign-status-abgeschlossen { background-color: theme('colors.green.700'); }
- .dark .assign-status-abgebrochen { background-color: theme('colors.red.700'); }
- /* Tiny chevron-only <select> sitting next to the day input. We hide
- the selected text via font-size:0 + color:transparent so only the
- browser's native dropdown arrow shows; clicking it opens the
- option list with its full-size text restored. */
- .assign-status-select {
- width: 1rem;
- min-width: 0;
- margin-left: 2px;
- padding: 0;
- border: 0;
- background-color: transparent;
- font-size: 0;
- line-height: 1;
- color: transparent;
- cursor: pointer;
- vertical-align: middle;
- }
- .assign-status-select:focus {
- outline: 2px solid theme('colors.slate.400');
- outline-offset: 1px;
- border-radius: 2px;
- }
- .assign-status-select option {
- font-size: 0.875rem;
- color: theme('colors.slate.900');
- background-color: theme('colors.white');
- }
- .dark .assign-status-select option {
- color: theme('colors.slate.100');
- background-color: theme('colors.slate.800');
- }
- }
|