Skip to content

Commit ad00020

Browse files
Merge pull request #490 from linuxfoundation/issue-#4888-update-kubecon-banner
feat(banner): add KubeCon Europe 2026 banner component
2 parents e730d18 + 75bfb77 commit ad00020

File tree

6 files changed

+73
-2
lines changed

6 files changed

+73
-2
lines changed

src/app/app.component.html

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22
SPDX-License-Identifier: MIT -->
33
<app-loader></app-loader>
44

5+
<!-- KubeCon Banner -->
6+
<app-kubecon-banner
7+
[text]="kubeconBanner.text"
8+
[ctaText]="kubeconBanner.ctaText"
9+
[url]="kubeconBanner.url">
10+
</app-kubecon-banner>
11+
512
<div class="fix-header-margin">
613
<app-alert></app-alert>
714
<router-outlet></router-outlet>

src/app/app.component.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,12 @@ export class AppComponent {
1616
hasExpanded: boolean;
1717
links: any[];
1818

19+
kubeconBanner = {
20+
text: 'Meet us in Amsterdam for KubeCon + CloudNativeCon Europe 2026 • Mar 23–26 •',
21+
ctaText: 'Register now',
22+
url: 'https://events.linuxfoundation.org/kubecon-cloudnativecon-europe/register/?utm_source=cla-contributor-console&utm_medium=homepage&utm_campaign=18269725-KubeCon-EU-2026&utm_content=hero'
23+
};
24+
1925
constructor(private auth:AuthService, private route: ActivatedRoute){}
2026

2127
onToggled() {
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
<!-- Copyright The Linux Foundation and each contributor to CommunityBridge.
2+
SPDX-License-Identifier: MIT
3+
Assisted with Cursor, assisted with Claude AI -->
4+
5+
<div class="kubecon-banner" *ngIf="text">
6+
{{ text }}
7+
<a *ngIf="ctaText && url" [href]="url" target="_blank" rel="noopener">
8+
{{ ctaText }}
9+
</a>
10+
</div>
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
// Copyright The Linux Foundation and each contributor to CommunityBridge.
2+
// SPDX-License-Identifier: MIT
3+
// Assisted with Cursor, assisted with Claude AI
4+
5+
.kubecon-banner {
6+
display: block;
7+
background-color: rgb(0, 148, 255);
8+
color: white;
9+
text-align: center;
10+
height: 3.5rem;
11+
font-size: 0.875rem;
12+
line-height: 1.75rem;
13+
margin-top: 60px;
14+
15+
a {
16+
color: white;
17+
text-decoration: underline;
18+
white-space: nowrap;
19+
20+
&:hover {
21+
text-decoration: none;
22+
}
23+
}
24+
25+
// Responsive styles
26+
@media (min-width: 640px) {
27+
height: 1.75rem;
28+
}
29+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Copyright The Linux Foundation and each contributor to CommunityBridge.
2+
// SPDX-License-Identifier: MIT
3+
// Assisted with Cursor, assisted with Claude AI
4+
5+
import { Component, Input } from '@angular/core';
6+
7+
@Component({
8+
selector: 'app-kubecon-banner',
9+
templateUrl: './kubecon-banner.component.html',
10+
styleUrls: ['./kubecon-banner.component.scss']
11+
})
12+
export class KubeconBannerComponent {
13+
@Input() text?: string;
14+
@Input() ctaText?: string;
15+
@Input() url?: string;
16+
}

src/app/shared/shared.module.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { FooterComponent } from './components/footer/footer.component';
1919
import { ConsentComponent } from './components/consent/consent.component';
2020
import { CommonModule } from '@angular/common';
2121
import { TrackEventDirective } from './directives/track-event.directive';
22+
import { KubeconBannerComponent } from './components/kubecon-banner/kubecon-banner.component';
2223

2324
@NgModule({
2425
declarations: [
@@ -33,7 +34,8 @@ import { TrackEventDirective } from './directives/track-event.directive';
3334
CheckboxComponent,
3435
FooterComponent,
3536
ConsentComponent,
36-
TrackEventDirective
37+
TrackEventDirective,
38+
KubeconBannerComponent
3739
],
3840
imports: [
3941
CommonModule
@@ -50,7 +52,8 @@ import { TrackEventDirective } from './directives/track-event.directive';
5052
CheckboxComponent,
5153
FooterComponent,
5254
ConsentComponent,
53-
TrackEventDirective
55+
TrackEventDirective,
56+
KubeconBannerComponent
5457
],
5558
providers: [StorageService, AuthService, LfxHeaderService, InterceptorService]
5659
})

0 commit comments

Comments
 (0)