mirror of
https://github.com/Lapikud/tipilan.git
synced 2026-08-08 17:49:13 +00:00
Bunch of minor fixes
This commit is contained in:
@@ -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]" : ""
|
||||
}`}
|
||||
>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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 }}
|
||||
|
||||
Reference in New Issue
Block a user