mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 20:17:32 +00:00
fix styles, home buttons
This commit is contained in:
@@ -1,6 +1,4 @@
|
|||||||
<span class="header-text">
|
|
||||||
<ng-content></ng-content>
|
|
||||||
</span>
|
|
||||||
<button class="header-button" matRipple [matRippleUnbounded]="false">
|
<button class="header-button" matRipple [matRippleUnbounded]="false">
|
||||||
<ng-icon size="1.3rem" name="heroChevronUpDown"></ng-icon>
|
<ng-icon size="1.3rem" name="heroChevronUpDown"></ng-icon>
|
||||||
|
<span class="sr-only">{{ ariaLabel }}</span>
|
||||||
</button>
|
</button>
|
||||||
|
@@ -10,6 +10,18 @@
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sr-only {
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
height: 1px;
|
||||||
|
padding: 0;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
clip: rect(0, 0, 0, 0);
|
||||||
|
white-space: nowrap;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
|
||||||
@mixin header-button-theme($theme) {
|
@mixin header-button-theme($theme) {
|
||||||
$foreground: map-get($theme, foreground);
|
$foreground: map-get($theme, foreground);
|
||||||
$is-dark-theme: map-get($theme, is-dark);
|
$is-dark-theme: map-get($theme, is-dark);
|
||||||
@@ -22,7 +34,7 @@
|
|||||||
border: 0;
|
border: 0;
|
||||||
background: transparent;
|
background: transparent;
|
||||||
border-radius: 6px;
|
border-radius: 6px;
|
||||||
padding: 0 0.5rem;
|
padding: 0 0.25rem;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
color: map-get($foreground, text);
|
color: map-get($foreground, text);
|
||||||
|
|
||||||
@@ -30,25 +42,4 @@
|
|||||||
background-color: if($is-dark-theme, #ffffff10, #00000010);
|
background-color: if($is-dark-theme, #ffffff10, #00000010);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.header-text {
|
|
||||||
height: 36px;
|
|
||||||
box-sizing: border-box;
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
border: none;
|
|
||||||
color: map-get($foreground, text);
|
|
||||||
border-radius: 6px;
|
|
||||||
position: relative;
|
|
||||||
font-size: 14px;
|
|
||||||
padding: 0 0.75rem;
|
|
||||||
text-align: left;
|
|
||||||
background-color: transparent;
|
|
||||||
cursor: pointer;
|
|
||||||
transition: all ease 0.2s;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background-color: if($is-dark-theme, #ffffff10, #00000010);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
import { ChangeDetectionStrategy, Component } from '@angular/core';
|
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
||||||
import { NgIconComponent, provideIcons } from '@ng-icons/core';
|
import { NgIconComponent, provideIcons } from '@ng-icons/core';
|
||||||
import { heroChevronUpDown } from '@ng-icons/heroicons/outline';
|
import { heroChevronUpDown } from '@ng-icons/heroicons/outline';
|
||||||
import { MatRippleModule } from '@angular/material/core';
|
import { MatRippleModule } from '@angular/material/core';
|
||||||
@@ -12,4 +12,6 @@ import { MatRippleModule } from '@angular/material/core';
|
|||||||
imports: [NgIconComponent, MatRippleModule],
|
imports: [NgIconComponent, MatRippleModule],
|
||||||
providers: [provideIcons({ heroChevronUpDown })],
|
providers: [provideIcons({ heroChevronUpDown })],
|
||||||
})
|
})
|
||||||
export class HeaderButtonComponent {}
|
export class HeaderButtonComponent {
|
||||||
|
@Input() ariaLabel: string = '';
|
||||||
|
}
|
||||||
|
@@ -2,8 +2,7 @@
|
|||||||
$foreground: map-get($theme, foreground);
|
$foreground: map-get($theme, foreground);
|
||||||
$background: map-get($theme, background);
|
$background: map-get($theme, background);
|
||||||
$is-dark-theme: map-get($theme, is-dark);
|
$is-dark-theme: map-get($theme, is-dark);
|
||||||
|
$border-radius: 0.5rem;
|
||||||
$border-radius: 1rem;
|
|
||||||
|
|
||||||
.dropdown-content {
|
.dropdown-content {
|
||||||
max-height: 50vh;
|
max-height: 50vh;
|
||||||
|
@@ -91,7 +91,18 @@ export class HeaderDropdownComponent implements OnInit {
|
|||||||
overlayY: 'bottom',
|
overlayY: 'bottom',
|
||||||
},
|
},
|
||||||
])
|
])
|
||||||
: undefined!,
|
: this.overlay
|
||||||
|
.position()
|
||||||
|
.flexibleConnectedTo(this.trigger.elementRef)
|
||||||
|
.withPositions([
|
||||||
|
{
|
||||||
|
originX: 'start',
|
||||||
|
originY: 'bottom',
|
||||||
|
overlayX: 'start',
|
||||||
|
overlayY: 'top',
|
||||||
|
offsetY: 8, // 8px gap between trigger and overlay
|
||||||
|
},
|
||||||
|
]),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -19,6 +19,7 @@
|
|||||||
|
|
||||||
.dropdown-label {
|
.dropdown-label {
|
||||||
color: if($is-dark-theme, #ffffff60, #00000060);
|
color: if($is-dark-theme, #ffffff60, #00000060);
|
||||||
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.settings-button {
|
.settings-button {
|
||||||
|
@@ -1,14 +1,15 @@
|
|||||||
<div class="new-header-wrapper">
|
<div class="new-header-wrapper">
|
||||||
<ng-container *ngIf="myInstanceQuery.data()?.instance as instance">
|
<ng-container *ngIf="myInstanceQuery.data()?.instance as instance">
|
||||||
<ng-container *ngTemplateOutlet="slash"></ng-container>
|
<ng-container *ngTemplateOutlet="slash"></ng-container>
|
||||||
|
<a class="new-header-breadcrumb" matRipple [matRippleUnbounded]="false" [routerLink]="['/instance']">
|
||||||
|
{{ instance.name }}
|
||||||
|
</a>
|
||||||
<cnsl-header-button
|
<cnsl-header-button
|
||||||
cdkOverlayOrigin
|
cdkOverlayOrigin
|
||||||
#instanceTrigger="cdkOverlayOrigin"
|
#instanceTrigger="cdkOverlayOrigin"
|
||||||
(click)="isInstanceDropdownOpen.set(!isInstanceDropdownOpen())"
|
(click)="isInstanceDropdownOpen.set(!isInstanceDropdownOpen())"
|
||||||
|
ariaLabel="{{ instance.name }}"
|
||||||
>
|
>
|
||||||
<a class="new-header-breadcrumb" matRipple [matRippleUnbounded]="false" [routerLink]="bread.routerLink">
|
|
||||||
{{ instance.name }}
|
|
||||||
</a>
|
|
||||||
</cnsl-header-button>
|
</cnsl-header-button>
|
||||||
<cnsl-header-dropdown
|
<cnsl-header-dropdown
|
||||||
[trigger]="instanceTrigger"
|
[trigger]="instanceTrigger"
|
||||||
@@ -31,12 +32,21 @@
|
|||||||
</ng-container>
|
</ng-container>
|
||||||
<ng-container *ngIf="['org.read'] | hasRole | async">
|
<ng-container *ngIf="['org.read'] | hasRole | async">
|
||||||
<ng-container *ngTemplateOutlet="slash"></ng-container>
|
<ng-container *ngTemplateOutlet="slash"></ng-container>
|
||||||
|
<a
|
||||||
|
*ngIf="activeOrganizationQuery.data() as org"
|
||||||
|
class="new-header-breadcrumb"
|
||||||
|
matRipple
|
||||||
|
[matRippleUnbounded]="false"
|
||||||
|
[routerLink]="['/']"
|
||||||
|
>
|
||||||
|
{{ org.name }}
|
||||||
|
</a>
|
||||||
<cnsl-header-button
|
<cnsl-header-button
|
||||||
cdkOverlayOrigin
|
cdkOverlayOrigin
|
||||||
#orgTrigger="cdkOverlayOrigin"
|
#orgTrigger="cdkOverlayOrigin"
|
||||||
(click)="isOrgDropdownOpen.set(!isOrgDropdownOpen())"
|
(click)="isOrgDropdownOpen.set(!isOrgDropdownOpen())"
|
||||||
|
ariaLabel="{{ activeOrganizationQuery.data()?.name }}"
|
||||||
>
|
>
|
||||||
<ng-container *ngIf="activeOrganizationQuery.data() as org">{{ org.name }}</ng-container>
|
|
||||||
</cnsl-header-button>
|
</cnsl-header-button>
|
||||||
<cnsl-header-dropdown [trigger]="orgTrigger" [isOpen]="isOrgDropdownOpen()" (closed)="isOrgDropdownOpen.set(false)">
|
<cnsl-header-dropdown [trigger]="orgTrigger" [isOpen]="isOrgDropdownOpen()" (closed)="isOrgDropdownOpen.set(false)">
|
||||||
<cnsl-organization-selector (orgChanged)="isOrgDropdownOpen.set(false)"></cnsl-organization-selector>
|
<cnsl-organization-selector (orgChanged)="isOrgDropdownOpen.set(false)"></cnsl-organization-selector>
|
||||||
|
@@ -80,7 +80,7 @@
|
|||||||
},
|
},
|
||||||
"SETTINGS": {
|
"SETTINGS": {
|
||||||
"INSTANCE": {
|
"INSTANCE": {
|
||||||
"TITLE": "Default Settings",
|
"TITLE": "Instance Settings",
|
||||||
"DESCRIPTION": "Default settings for all organizations. With the right permissions, some of them are overridable in organization settings."
|
"DESCRIPTION": "Default settings for all organizations. With the right permissions, some of them are overridable in organization settings."
|
||||||
},
|
},
|
||||||
"ORG": {
|
"ORG": {
|
||||||
|
Reference in New Issue
Block a user