Bunch of minor fixes

This commit is contained in:
2026-05-09 17:56:33 +03:00
parent c08a665503
commit 3c025639aa
12 changed files with 183 additions and 118 deletions

View File

@@ -40,8 +40,11 @@ const Header = ({ navItems }: HeaderProps) => {
const pathname = usePathname();
const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
// Header navigation should include all options except homepage
const mainNavItems = navItems.filter((item) => item.href !== "/");
// Header navigation should include all options except homepage and hidden items
const hiddenNavHrefs: NavItem["href"][] = ["/messiala", "/ajakava"];
const mainNavItems = navItems.filter(
(item) => item.href !== "/" && !hiddenNavHrefs.includes(item.href),
);
const dropdownNavItems = mainNavItems;
const navIconByHref: Partial<Record<NavItem["href"], string>> = {
@@ -86,16 +89,16 @@ const Header = ({ navItems }: HeaderProps) => {
<Image
src="/tipilan-icon-white.svg"
alt="TipiLAN"
width={49}
width={40}
height={40}
className="h-10 w-auto"
className="h-auto w-10"
/>
</Link>
{/* Right side - Navigation + controls */}
<div className="flex items-center gap-12">
{/* Desktop Navigation */}
<nav className="hidden xl:flex items-center gap-12">
<nav className="hidden xl:flex items-center gap-8">
{mainNavItems.map((item) => {
const isActive = pathname === item.href;
@@ -106,7 +109,7 @@ const Header = ({ navItems }: HeaderProps) => {
aria-current={isActive ? "page" : undefined}
aria-disabled={isActive ? true : undefined}
tabIndex={isActive ? -1 : undefined}
className={`${vipnagorgialla.className} group font-bold italic text-lg uppercase px-4 py-1.5 border-2 border-[#00A3E0] transition ${
className={`${vipnagorgialla.className} group font-bold italic leading-none text-lg uppercase px-4 py-1.5 border-4 border-[#00A3E0] transition ${
isActive
? "bg-[#00A3E0] text-black cursor-default pointer-events-none"
: "bg-[#1F5673] text-[#EEE5E5] hover:bg-[#00A3E0] hover:text-black"
@@ -155,7 +158,7 @@ const Header = ({ navItems }: HeaderProps) => {
>
{isActive ? (
<span
className={`${vipnagorgialla.className} block w-full cursor-default bg-[#00A3E0] px-5 py-2.5 text-xl font-bold italic uppercase text-black ${
className={`${vipnagorgialla.className} block w-full cursor-default bg-[#00A3E0] px-5 py-2.5 text-xl font-bold italic leading-none uppercase text-black ${
hasBottomBorder ? "border-b-3 border-[#1F5673]" : ""
}`}
>
@@ -181,7 +184,7 @@ const Header = ({ navItems }: HeaderProps) => {
) : (
<Link
href={item.href}
className={`${vipnagorgialla.className} group block w-full bg-[#0E0F19] px-5 py-2.5 text-xl font-bold italic uppercase text-[#EEE5E5] transition hover:bg-[#00A3E0] hover:text-black ${
className={`${vipnagorgialla.className} group block w-full bg-[#0E0F19] px-5 py-2.5 text-xl font-bold italic leading-none uppercase text-[#EEE5E5] transition hover:bg-[#00A3E0] hover:text-black ${
hasBottomBorder ? "border-b-3 border-[#1F5673]" : ""
}`}
>

View File

@@ -35,7 +35,7 @@ export default function HeroSection() {
</div>
<Link
href="/piletid"
className={`self-center md:self-start px-6 py-3 bg-[#00A3E0] hover:bg-[#E5E5EE] text-[#0A121F] ${vipnagorgialla.className} font-bold italic text-[clamp(1rem,0.8rem+0.8vw,1.5rem)] uppercase transition`}
className={`self-center md:self-start px-6 py-3 border-4 border-transparent bg-[#00A3E0] hover:bg-[#E5E5EE] text-[#0A121F] ${vipnagorgialla.className} font-bold italic leading-none text-[clamp(1rem,0.8rem+0.8vw,1.5rem)] uppercase transition`}
>
{t("hero.buyTicket")}
</Link>

View File

@@ -25,7 +25,7 @@ function RuleItem({
}) {
if (typeof rule === "string") {
return (
<li className="text-white mb-2">
<li className="text-white mb-2 leading-[19px]">
<span className="text-white mr-2">{index}.</span>
{rule}
</li>
@@ -33,7 +33,7 @@ function RuleItem({
}
return (
<li className="text-white mb-3">
<li className="text-white mb-3 leading-[19px]">
<span className="text-white mr-2">{index}.</span>
{rule.main}
{rule.sub && rule.sub.length > 0 && (
@@ -41,7 +41,7 @@ function RuleItem({
{rule.sub.map((subRule, subIndex) => {
if (typeof subRule === "string") {
return (
<li key={subIndex} className="text-white mb-1">
<li key={subIndex} className="text-white mb-1 leading-[19px]">
<span className="text-white mr-2">
{index}.{subIndex + 1}.
</span>
@@ -50,7 +50,7 @@ function RuleItem({
);
}
return (
<li key={subIndex} className="text-white mb-2">
<li key={subIndex} className="text-white mb-2 leading-[19px]">
<span className="text-white mr-2">
{index}.{subIndex + 1}.
</span>
@@ -58,7 +58,10 @@ function RuleItem({
{subRule.sub && subRule.sub.length > 0 && (
<ol className="ml-6 mt-1">
{subRule.sub.map((subSubRule, subSubIndex) => (
<li key={subSubIndex} className="text-white/80 mb-1">
<li
key={subSubIndex}
className="text-white/80 mb-1 leading-[19px]"
>
<span className="text-white/80 mr-2">
{index}.{subIndex + 1}.{subSubIndex + 1}.
</span>

View File

@@ -94,7 +94,7 @@ export default function TeaserCarousel() {
return (
<div className="border-b-3 border-[#1F5673]">
{/* Slides (fade transition + hero lift effect) */}
<div className="relative h-135 sm:h-140 md:h-160 lg:h-175 xl:h-155 2xl:h-165 overflow-hidden">
<div className="relative h-135 sm:h-140 md:h-160 lg:h-[720px] xl:h-[780px] 2xl:h-[820px] overflow-hidden">
{slides.map((slide, i) => {
const title = t(`${slide.key}.title`);
const description = t(`${slide.key}.description`);
@@ -172,7 +172,7 @@ export default function TeaserCarousel() {
})}
{/* Floating heading (mobile) */}
<div className="absolute top-5 inset-x-0 px-8 z-20 md:hidden pointer-events-none">
<div className="absolute top-8 inset-x-0 px-8 z-20 md:hidden pointer-events-none">
<h2
className={`${vipnagorgialla.className} font-bold italic text-[clamp(2rem,1.5rem+4.6vw,3rem)] leading-[0.95] tracking-normal uppercase text-[#EEE5E5] whitespace-normal wrap-break-word text-left max-w-[12ch]`}
>
@@ -181,7 +181,7 @@ export default function TeaserCarousel() {
</div>
{/* Floating heading (desktop/tablet) */}
<div className="absolute top-8 inset-x-0 px-4 sm:px-6 md:px-12 z-20 hidden md:flex pointer-events-none">
<div className="absolute top-12 inset-x-0 px-4 sm:px-6 md:px-12 z-20 hidden md:flex pointer-events-none">
<div
className="transition-[flex-grow] duration-700 ease-out"
style={{ flexGrow: headingOnRight ? 1 : 0 }}