diff --git a/hubzilla/addon/assoc_profile/view/css/assoc_profile.css b/hubzilla/addon/assoc_profile/view/css/assoc_profile.css index 97ec982..9a9e324 100644 --- a/hubzilla/addon/assoc_profile/view/css/assoc_profile.css +++ b/hubzilla/addon/assoc_profile/view/css/assoc_profile.css @@ -1,57 +1,166 @@ -/* assoc_profile — v0.1.0 */ +/* assoc_profile — v0.2.0 + All colors via --civicinfra-* tokens. + All structural classes via civicinfra primitives. */ + +/* ============================================================ + PROFILE VIEW + ============================================================ */ -/* --- Profile view --- */ .assoc-profile-view { - margin-top: 1.5rem; - padding-top: 1rem; - border-top: 1px solid #dee2e6; + margin-top: var(--civicinfra-space-6, 1.5rem); + padding-top: var(--civicinfra-space-4, 1rem); + border-top: 2px solid var(--civicinfra-rule, #b7ad9d); } -.assoc-profile-heading { - font-size: 1.1rem; - font-weight: 600; - margin-bottom: 1rem; -} - -/* --- Field groups --- */ .assoc-profile-group { - margin-bottom: 1.25rem; + margin-bottom: var(--civicinfra-space-6, 1.5rem); } -.assoc-group-label { - font-size: 0.85rem; - font-weight: 700; - text-transform: uppercase; - letter-spacing: 0.05em; - color: #6c757d; - margin-bottom: 0.5rem; - padding-bottom: 0.25rem; - border-bottom: 1px solid #f0f0f0; -} - -/* --- Field labels and values --- */ .assoc-profile-field { - display: flex; - gap: 0.5rem; - padding: 0.2rem 0; - font-size: 0.9rem; - line-height: 1.4; + display: grid; + grid-template-columns: 12rem 1fr; + gap: var(--civicinfra-space-2, 0.5rem); + padding: var(--civicinfra-space-1, 0.25rem) 0; + font-size: var(--civicinfra-fs-sm, 0.875rem); + line-height: 1.5; + border-bottom: 1px solid var(--civicinfra-surface-muted, #e7e1d6); +} + +.assoc-profile-field:last-child { + border-bottom: none; } .assoc-field-label { - font-weight: 600; - color: #495057; - min-width: 11rem; - flex-shrink: 0; + font-weight: 600; + color: var(--civicinfra-muted, #5f655d); + font-size: var(--civicinfra-fs-xs, 0.75rem); + text-transform: uppercase; + letter-spacing: 0.04em; + padding-top: 0.1rem; } .assoc-field-value { - color: #212529; + color: var(--civicinfra-text, #24231f); } -/* --- Profile edit form --- */ -.assoc-profile-edit { - margin-top: 1.5rem; - padding-top: 1rem; - border-top: 1px solid #dee2e6; +/* ============================================================ + MANAGE INTERFACE + ============================================================ */ + +.assoc-manage { + max-width: 72rem; +} + +/* Search and filter bar */ +.assoc-search-bar { + display: flex; + gap: var(--civicinfra-space-2, 0.5rem); + flex-wrap: wrap; + align-items: flex-end; + padding: var(--civicinfra-space-3, 0.75rem) var(--civicinfra-space-4, 1rem); + background: var(--civicinfra-surface, #f2efe8); + border: 1px solid var(--civicinfra-border, #cfc6b6); + border-radius: var(--civicinfra-radius, 3px); + margin-bottom: var(--civicinfra-space-4, 1rem); +} + +.assoc-search-bar .form-control, +.assoc-search-bar .form-select { + font-size: var(--civicinfra-fs-sm, 0.875rem); +} + +/* Bulk actions bar */ +.assoc-bulk-bar { + display: flex; + gap: var(--civicinfra-space-2, 0.5rem); + align-items: center; + padding: var(--civicinfra-space-2, 0.5rem) var(--civicinfra-space-3, 0.75rem); + background: var(--civicinfra-accent-muted, #d8c4a2); + border: 1px solid var(--civicinfra-accent, #8a673c); + border-radius: var(--civicinfra-radius, 3px); + margin-bottom: var(--civicinfra-space-3, 0.75rem); + font-size: var(--civicinfra-fs-sm, 0.875rem); + font-weight: 600; +} + +/* Pagination */ +.assoc-pagination { + display: flex; + align-items: center; + justify-content: space-between; + padding-top: var(--civicinfra-space-3, 0.75rem); + font-size: var(--civicinfra-fs-sm, 0.875rem); + color: var(--civicinfra-muted, #5f655d); + border-top: 1px solid var(--civicinfra-surface-muted, #e7e1d6); +} + +/* Delete confirmation */ +.assoc-delete-confirm { + border: 1px solid var(--civicinfra-danger, #7a342c); + border-left: 0.35rem solid var(--civicinfra-danger, #7a342c); + background: color-mix(in srgb, var(--civicinfra-danger, #7a342c) 6%, var(--civicinfra-bg, #faf9f6)); + padding: var(--civicinfra-space-4, 1rem); + border-radius: 0 var(--civicinfra-radius, 3px) var(--civicinfra-radius, 3px) 0; + margin-top: var(--civicinfra-space-6, 1.5rem); +} + +.assoc-delete-confirm h5 { + color: var(--civicinfra-danger, #7a342c); + margin-bottom: var(--civicinfra-space-3, 0.75rem); +} + +/* Diff view */ +.assoc-diff-entry { + margin-bottom: var(--civicinfra-space-4, 1rem); + border: 1px solid var(--civicinfra-border, #cfc6b6); + border-radius: var(--civicinfra-radius, 3px); + overflow: hidden; +} + +.assoc-diff-entry-header { + background: var(--civicinfra-surface, #f2efe8); + padding: var(--civicinfra-space-2, 0.5rem) var(--civicinfra-space-4, 1rem); + font-weight: 700; + font-size: var(--civicinfra-fs-sm, 0.875rem); + border-bottom: 1px solid var(--civicinfra-border, #cfc6b6); + display: flex; + align-items: center; + gap: var(--civicinfra-space-3, 0.75rem); +} + +.assoc-diff-entry-new { + border-left: 0.25rem solid var(--civicinfra-primary, #243f3b); +} + +.assoc-diff-entry-changed { + border-left: 0.25rem solid var(--civicinfra-accent, #8a673c); +} + +/* Edit form profile link */ +.assoc-profile-edit-link { + padding-top: var(--civicinfra-space-3, 0.75rem); +} + +/* ============================================================ + RESPONSIVE + ============================================================ */ + +@media (max-width: 767.98px) { + .assoc-profile-field { + grid-template-columns: 1fr; + gap: var(--civicinfra-space-1, 0.25rem); + } + + .assoc-field-label { + border-bottom: none; + padding-bottom: 0; + } + + .assoc-search-bar { + flex-direction: column; + } + + .assoc-manage { + max-width: 100%; + } }