contacts-pane
Version:
Contacts Pane: Contacts manager for Address Book, Groups, and Individuals.
253 lines (212 loc) • 9.28 kB
CSS
/* ── Named pane (rendered sub-pane) ──────────────────────────── */
.contactPane .namedPane {
border: var(--border-width-sm) solid var(--color-text-muted);
border-radius: var(--border-radius-base);
}
/* ── Persona row ─────────────────────────────────────────────── */
.contactPane .personaRow {
padding: var(--spacing-xs);
}
.contactPane .personaRow--webid,
.contactPane .personaRow--webid td,
.contactPane .personaRow--webid button,
.contactPane .personaRow--webid button:hover,
.contactPane .personaRow--webid .hoverControl:has(> img:first-child),
.contactPane .personaRow--webid .hoverControl:has(> img:first-child):hover,
.contactPane .personaRow--webid .personaOpenButton:has(> img:first-child),
.contactPane .personaRow--webid .personaOpenButton:has(> img:first-child):hover {
background-color: var(--color-info-bg) ;
}
/* ── Full-width elements ─────────────────────────────────────── */
.contactPane .fullWidth {
width: 100%;
}
/* ── Open/close profile button ───────────────────────────────── */
.contactPane .personaOpenButton {
float: right;
background-color: transparent;
border: none;
}
/* hoverControl layout overrides are now enforced in contactsRDFFormsEnforced.css */
/* ── Delete confirmation popup in webidControl ───────────────── */
/* Remove intermediate positioned ancestor so popup anchors to .hoverControl */
.contactPane .webidControl div[style*="position: relative"]:has(> div[style*="display: grid"]) {
position: static ;
}
/* Position the popup absolutely so it never participates in the flex row */
.contactPane .webidControl div[style*="position: relative"] > div[style*="display: grid"] {
position: absolute ;
top: 0 ;
right: 0 ;
left: auto ;
z-index: 9999 ;
display: grid ;
pointer-events: auto ;
opacity: 1 ;
visibility: visible ;
padding: var(--spacing-btn) ;
min-width: 12em ;
background: var(--color-background) ;
border: var(--border-width-sm) solid var(--color-primary) ;
border-radius: var(--border-radius-base) ;
box-shadow: var(--box-shadow-popup) ;
grid-template-columns: auto auto ;
gap: var(--spacing-xxs) ;
}
/* ── Section heading ─────────────────────────────────────────── */
.contactPane .contactPanedHeading {
font-size: var(--font-size-lg);
font-weight: bold;
color: var(--color-primary);
margin: var(--spacing-sm) 0;
}
/* ── Prompt text ─────────────────────────────────────────────── */
.contactPane .webidPrompt {
padding: var(--spacing-sm);
border: none;
font-size: var(--font-size-base);
white-space: pre-wrap;
}
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane,
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) table td div.contactPane.namedPane {
display: block;
width: 100% ;
max-width: none ;
min-width: 0 ;
box-sizing: border-box;
container-type: inline-size;
container-name: nested-profile-pane;
margin-top: var(--spacing-sm);
}
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profile-grid,
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane #main-content.profile-grid {
display: flex ;
flex-direction: column ;
gap: var(--spacing-sm) ;
}
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profile__main,
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profile__sidebar,
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profile__section {
width: 100% ;
min-width: 0 ;
max-width: 100% ;
box-sizing: border-box;
overflow-wrap: anywhere;
}
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profile__sidebar,
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profile__section,
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profile__main {
padding: var(--spacing-sm) ;
}
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profileSectionCollapsible[data-expanded="false"] .profileSectionCollapsible__content {
display: none ;
}
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profileSectionCollapsible__toggle {
display: inline-flex ;
align-items: center;
justify-content: center;
min-height: auto ;
min-width: auto ;
padding: var(--spacing-xxs) ;
border: none ;
background: none ;
color: var(--color-text) ;
}
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profileSectionCollapsible[data-expanded="true"] .profileSectionCollapsible__chevron {
transform: rotate(180deg);
}
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profileSectionCollapsible__editLabel {
display: none ;
}
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .profileSectionCollapsible__editIcon {
display: inline ;
}
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .socialItem {
display: flex ;
align-items: center ;
flex: 0 0 auto ;
}
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .socialItem a {
display: inline-flex ;
align-items: center ;
justify-content: center ;
flex: 0 0 auto ;
width: auto ;
min-width: var(--min-touch-target) ;
min-height: var(--min-touch-target) ;
line-height: 0 ;
}
.contactPane :is(.contactPane--narrow .webidControl, .webidControl.webidControl--mobile) .namedPane .socialIcon {
display: block ;
width: 40px ;
height: 40px ;
min-width: 40px ;
min-height: 40px ;
max-width: 40px ;
max-height: 40px ;
object-fit: contain ;
flex-shrink: 0 ;
}
@media (max-width: 1000px) {
.contactPane .webidControl,
.contactPane .webidControl table,
.contactPane .webidControl tbody,
.contactPane .webidControl tr,
.contactPane .webidControl td {
width: 100%;
max-width: 100%;
min-width: 0;
box-sizing: border-box;
}
.contactPane .webidControl table {
table-layout: fixed;
}
.contactPane .webidControl .personaRow--webid td {
vertical-align: top;
}
.contactPane .webidControl .contactPane,
.contactPane .webidControl .contactPane .addressBook-grid,
.contactPane .webidControl .contactPane .detailSection,
.contactPane .webidControl .contactPane .detailsSectionContent {
width: 100% ;
max-width: 100% ;
min-width: 0 ;
box-sizing: border-box;
}
.contactPane .webidControl .contactPane .addressBook-grid {
flex-direction: column ;
flex-wrap: nowrap ;
}
.contactPane .webidControl .contactPane .detailSection,
.contactPane .webidControl .contactPane .addressBookSection {
flex: none ;
}
.contactPane .webidControl .contactPane .detailsSectionContent,
.contactPane .webidControl .contactPane .detailsSectionContent--wide {
padding: var(--spacing-sm) ;
overflow-y: visible ;
}
}
@container nested-profile-pane (max-width: 900px) {
.contactPane .webidControl .profile-grid {
display: flex ;
flex-direction: column ;
gap: var(--spacing-sm) ;
}
.contactPane .webidControl .profile-grid > * {
min-width: 0 ;
max-width: 100% ;
}
.contactPane .webidControl .profile__main,
.contactPane .webidControl .profile__sidebar,
.contactPane .webidControl .profile__section {
width: 100% ;
min-width: 0 ;
max-width: 100% ;
overflow-wrap: anywhere;
}
}
/* ── Visibility / display helpers ────────────────────────────── */
.contactPane .collapsed {
visibility: collapse;
}