diff --git a/frontend/src/app/app.component.html b/frontend/src/app/app.component.html index 0680b43..6659729 100644 --- a/frontend/src/app/app.component.html +++ b/frontend/src/app/app.component.html @@ -1 +1,2 @@ + diff --git a/frontend/src/app/app.component.ts b/frontend/src/app/app.component.ts index 7acf29a..6b8cdf7 100644 --- a/frontend/src/app/app.component.ts +++ b/frontend/src/app/app.component.ts @@ -2,11 +2,11 @@ import { Component, ChangeDetectionStrategy } from '@angular/core'; import { CommonModule } from '@angular/common'; import { RouterOutlet } from '@angular/router'; import { KeycloakAngularModule } from 'keycloak-angular'; - +import { NavbarComponent } from './shared/components/navbar/navbar.component'; @Component({ selector: 'app-root', standalone: true, - imports: [CommonModule, RouterOutlet, KeycloakAngularModule], + imports: [CommonModule, RouterOutlet, KeycloakAngularModule, NavbarComponent], providers: [], templateUrl: './app.component.html', styleUrl: './app.component.css', diff --git a/frontend/src/app/shared/components/navbar/navbar.component.html b/frontend/src/app/shared/components/navbar/navbar.component.html new file mode 100644 index 0000000..61447ad --- /dev/null +++ b/frontend/src/app/shared/components/navbar/navbar.component.html @@ -0,0 +1,42 @@ + \ No newline at end of file diff --git a/frontend/src/app/shared/components/navbar/navbar.component.ts b/frontend/src/app/shared/components/navbar/navbar.component.ts new file mode 100644 index 0000000..338201c --- /dev/null +++ b/frontend/src/app/shared/components/navbar/navbar.component.ts @@ -0,0 +1,17 @@ +import { Component } from '@angular/core'; +import { RouterModule } from '@angular/router'; +import { CommonModule } from '@angular/common'; + +@Component({ + selector: 'app-navbar', + templateUrl: './navbar.component.html', + standalone: true, + imports: [CommonModule, RouterModule] +}) +export class NavbarComponent { + isMenuOpen = false; + + toggleMenu() { + this.isMenuOpen = !this.isMenuOpen; + } +} \ No newline at end of file diff --git a/frontend/src/styles.css b/frontend/src/styles.css index d4b5078..b1ddff1 100644 --- a/frontend/src/styles.css +++ b/frontend/src/styles.css @@ -1 +1,12 @@ -@import 'tailwindcss'; +@import "tailwindcss"; + +@theme { + --color-deep-blue: #0F212E; + --color-deep-blue-light: #1A2C38; + --color-deep-blue-contrast: #1B2C3B; + --color-light-blue: #1475E1; +} + +body { + @apply bg-deep-blue text-gray-100; +} \ No newline at end of file diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js deleted file mode 100644 index 843fec3..0000000 --- a/frontend/tailwind.config.js +++ /dev/null @@ -1,218 +0,0 @@ -/** @type {import('tailwindcss').Config} */ -module.exports = { - content: [ - "./src/**/*.{html,ts}", - ], - theme: { - extend: { - animation: { - 'fadeIn': 'fadeIn 0.3s ease-out', - 'backdropBlur': 'backdropBlur 0.4s ease-out', - 'modalSlideIn': 'modalSlideIn 0.5s cubic-bezier(0.16,1,0.3,1)', - 'slideDown': 'slideDown 0.6s ease-out', - 'slideUp': 'slideUp 0.6s ease-out', - 'scaleIn': 'scaleIn 0.8s cubic-bezier(0.16,1,0.3,1)', - 'spinAndBounce': 'spinAndBounce 3s ease-in-out infinite', - 'glow': 'glow 4s ease-in-out infinite', - 'marquee': 'marquee 30s linear infinite', - 'float': 'float 6s ease-in-out infinite', - 'tiltAndGlow': 'tiltAndGlow 3s ease-in-out infinite', - 'shimmer': 'shimmer 2s linear infinite', - 'morphBackground': 'morphBackground 10s ease-in-out infinite', - 'elasticScale': 'elasticScale 0.6s cubic-bezier(0.68, -0.55, 0.265, 1.55)', - 'bounceAndFade': 'bounceAndFade 0.5s cubic-bezier(0.68, -0.55, 0.265, 1.55)', - 'rotateAndScale': 'rotateAndScale 0.4s cubic-bezier(0.68, -0.55, 0.265, 1.55)', - 'pulseGlow': 'pulseGlow 2s cubic-bezier(0.4, 0, 0.6, 1) infinite', - }, - keyframes: { - fadeIn: { - 'from': { opacity: '0' }, - 'to': { opacity: '1' } - }, - backdropBlur: { - 'from': { - 'backdrop-filter': 'blur(0px)', - 'background-color': 'rgba(0,0,0,0)' - }, - 'to': { - 'backdrop-filter': 'blur(16px)', - 'background-color': 'rgba(0,0,0,0.95)' - } - }, - modalSlideIn: { - 'from': { - opacity: '0', - transform: 'scale(0.95) translateY(10px)' - }, - 'to': { - opacity: '1', - transform: 'scale(1) translateY(0)' - } - }, - slideDown: { - 'from': { - opacity: '0', - transform: 'translateY(-20px)' - }, - 'to': { - opacity: '1', - transform: 'translateY(0)' - } - }, - slideUp: { - 'from': { - opacity: '0', - transform: 'translateY(20px)' - }, - 'to': { - opacity: '1', - transform: 'translateY(0)' - } - }, - scaleIn: { - 'from': { - opacity: '0', - transform: 'scale(0.9)' - }, - 'to': { - opacity: '1', - transform: 'scale(1)' - } - }, - spinAndBounce: { - '0%': { - transform: 'scale(1) rotate(0deg)' - }, - '50%': { - transform: 'scale(1.2) rotate(180deg)' - }, - '100%': { - transform: 'scale(1) rotate(360deg)' - } - }, - glow: { - '0%, 100%': { - opacity: '0.3', - transform: 'scale(1)' - }, - '50%': { - opacity: '0.5', - transform: 'scale(1.05)' - } - }, - marquee: { - '0%': { transform: 'translateX(0)' }, - '100%': { transform: 'translateX(-100%)' } - }, - float: { - '0%, 100%': { transform: 'translateY(0)' }, - '50%': { transform: 'translateY(-20px)' } - }, - tiltAndGlow: { - '0%, 100%': { - transform: 'perspective(1000px) rotateX(0deg) rotateY(0deg)', - 'box-shadow': '0 0 20px rgba(34,197,94,0.2)' - }, - '50%': { - transform: 'perspective(1000px) rotateX(2deg) rotateY(5deg)', - 'box-shadow': '0 0 40px rgba(34,197,94,0.4)' - } - }, - shimmer: { - '0%': { - 'background-position': '-1000px 0' - }, - '100%': { - 'background-position': '1000px 0' - } - }, - morphBackground: { - '0%, 100%': { - 'border-radius': '60% 40% 30% 70%/60% 30% 70% 40%' - }, - '50%': { - 'border-radius': '30% 60% 70% 40%/50% 60% 30% 60%' - } - }, - elasticScale: { - '0%': { - transform: 'scale(0)' - }, - '60%': { - transform: 'scale(1.1)' - }, - '100%': { - transform: 'scale(1)' - } - }, - bounceAndFade: { - '0%': { - transform: 'scale(0.3)', - opacity: '0' - }, - '50%': { - transform: 'scale(1.05)', - opacity: '0.8' - }, - '100%': { - transform: 'scale(1)', - opacity: '1' - } - }, - rotateAndScale: { - '0%': { - transform: 'rotate(-180deg) scale(0)' - }, - '100%': { - transform: 'rotate(0) scale(1)' - } - }, - pulseGlow: { - '0%, 100%': { - opacity: '1', - transform: 'scale(1)', - filter: 'brightness(1)' - }, - '50%': { - opacity: '0.8', - transform: 'scale(1.05)', - filter: 'brightness(1.2)' - } - } - }, - transitionDelay: { - '100': '100ms', - '200': '200ms', - '300': '300ms', - '400': '400ms', - '500': '500ms', - }, - transitionTimingFunction: { - 'bounce': 'cubic-bezier(0.68, -0.55, 0.265, 1.55)', - 'smooth': 'cubic-bezier(0.4, 0, 0.2, 1)', - 'elastic': 'cubic-bezier(0.68, -0.55, 0.265, 1.55)', - 'spring': 'cubic-bezier(0.175, 0.885, 0.32, 1.275)', - }, - backdropBlur: { - 'xs': '2px', - '4xl': '72px', - '5xl': '96px', - }, - backgroundImage: { - 'gradient-radial': 'radial-gradient(var(--tw-gradient-stops))', - 'gradient-conic': 'conic-gradient(from 180deg at 50% 50%, var(--tw-gradient-stops))', - 'shimmer': 'linear-gradient(90deg, transparent, rgba(255,255,255,0.08), transparent)', - } - }, - }, - plugins: [ - require('@tailwindcss/aspect-ratio'), - require('@tailwindcss/forms'), - require('@tailwindcss/typography'), - require('tailwindcss-animated'), - require('tailwindcss-gradients'), - require('tailwindcss-transforms'), - require('tailwindcss-filters'), - require('tailwind-scrollbar-hide'), - ], -}