Toggle menu
Toggle preferences menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

Template:Main page/header/styles.css: Difference between revisions

Template page
No edit summary
No edit summary
Tag: Manual revert
 
(57 intermediate revisions by the same user not shown)
Line 33: Line 33:
  * (Now with Flexbox for icon alignment)
  * (Now with Flexbox for icon alignment)
  */
  */
.citizen-search-trigger {
/* This is the PARENT container */
  /* --- Core Setup --- */
.gradient-border {
  position: relative;
   /* CRITICAL: This "contains" the child element */
  z-index: 1;
  position: relative;  
   /* CHANGED: Use flex to align icon and text */
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  /* ----------------- */
  overflow: hidden;
  padding: 12px 24px;
  margin-top: 32px;
  margin-left: auto;
  margin-right: auto;
  max-width: 600px;
 
  /* --- Appearance --- */
  background-color: #2a2a2a;
  color: #eee;
  border: 1px solid #555;
  border-radius: 9999px;
    
    
   /* --- Text --- */
   /* This padding defines the *overall size and shape* of the button */
  font-size: 14px;
   /* DO NOT REMOVE THIS */
  font-weight: 500;
  padding: 25px 25px;
   /* text-align is no longer needed */
    
    
   /* --- Other --- */
   /* These are good for centering the button on the page */
  cursor: pointer;
  max-width: 600px;
  transition: background-color 0.3s ease;
  margin: 32px auto;
}


  background: #1c1f2b; /* Fallback color */
  border-radius: 9999px; /* Changed to pill shape */
  z-index: 0;
 


  /* NOTE: You still need your ::before pseudo-element */
  /* (like .gradient-border::before) to create the gradient! */
  /* This class only holds the content. */
}


/*
/* This is the CHILD (the button face) */
* 3. THE ANIMATED GLOW (::before pseudo-element) - NEW ANIMATION
.search-box {
*/
  /* Use absolute positioning to fill the parent */
.citizen-search-trigger::before {
  position: absolute;
  content: '';
  top: 0;
  position: absolute;
  left: 0;
  z-index: -1; /* Keep it behind the button content */
  width: 100%;
 
  height: 100%;
  /* Make it slightly larger than the button to create the "glow" border */
 
  /* These values might need fine-tuning with your final button size */
 
  top: -4px;
  /* These center the text/icon *inside* this element */
  left: -4px;
  display: flex;
  width: calc(100% + 8px);
  align-items: center;
  height: calc(100% + 8px);
  justify-content: center;
  border-radius: 9999px; /* Match the button's pill shape */
  gap: 6px;
  /* Styling for the button face */
  border-radius: 9999px;
  background-color: #121011;
  color: #eee;
  font-size: 14px;
  font-weight: 500;
  cursor: pointer;
  /* Sits on top of the parent */
  z-index: 1;
}
.gradient-border::before {
  border-radius: 9999px;
  content: '';
  position: absolute;
  z-index: -1;
  top: -4px;
  left: -4px;
  width: calc(100% + 8px);
  height: calc(100% + 8px);
  background: linear-gradient(90deg,
    #87bfdb, #77abC8, #6797b5, #577f9d, #476684, #43668a,
    #3e668f, #304a66, #212d3d, #304a66, #3e668f, #43668a,
    #476684, #577f9d, #6797b5, #77abC8, #87bfdb


  /* Default (blue) glow - Using a large linear gradient to simulate conic for better compatibility */
  background: linear-gradient(
    90deg,
    #1d2c3d 0%, /* Dark blue base */
    #007bff 20%, /* Vibrant blue */
    #1d2c3d 40%, /* Dark blue base */
    #1d2c3d 60%, /* Dark blue base */
    #007bff 80%, /* Vibrant blue */
    #1d2c3d 100% /* Dark blue base */
   );
   );
  background-size: 200% 200%; /* Make gradient large enough to animate smoothly */
  filter: blur(4px); /* Default blur, less intense */


  /* Default animation: slow rotation */
  background-size: 400% 400%;
  animation: rotateGlow 15s linear infinite; /* Slower default rotation */
 
  filter: blur(4px);
  transition: all 0.5s ease; /* Smooth transition for hover effects */
  animation: moveGradient 10s linear infinite;
  transition: all 0.5s ease;
 
  opacity: 0.5;
 
}
}


/*
 
* 4. HOVER EFFECTS - UPDATED FOR NEW ANIMATION
.gradient-border:hover {
*/
 
.citizen-search-trigger:hover {
  background-color: #1a1a1a;
  background-color: #1a1a1a; /* Darken the button on hover */
 
}
}


.citizen-search-trigger:hover::before {
 
  /* Hover (orange) glow */
 
   background: linear-gradient(
.gradient-border:hover::before {
    90deg,  
     #3d2c1d 0%, /* Dark orange base */
width: calc(100% + 8px);
     #ff8c00 20%, /* Vibrant orange */
     #3d2c1d 40%, /* Dark orange base */
height: calc(100% + 8px);
    #3d2c1d 60%, /* Dark orange base */
 
    #ff8c00 80%, /* Vibrant orange */
   background: linear-gradient(90deg,  
    #3d2c1d 100% /* Dark orange base */
 
     #120d0e, #321d13, #512d19, #713d1e, #90571d, #b0701b,  
 
     #cf8a1a, #de9822, #eeA529, #fdb331, #eeA529, #de9822,  
 
     #cf8a1a, #b0701b, #90571d, #713d1e, #512d19, #321d13, #120d0e
 
   );
   );
  background-size: 200% 200%;
 
  filter: blur(8px); /* More intense blur on hover */
  background-size: 400% 400%;
 
  /* Faster animation on hover */
  filter: blur(8px);
  animation: rotateGlow 8s linear infinite; /* Faster rotation on hover */
  animation: moveGradient 10s linear infinite;
  transition: all 0.5s ease;
 
  opacity: 0.5;
 
}
}


/*
/*
  * 5. THE KEYFRAMES FOR THE ANIMATION
  * 5. THE KEYFRAMES FOR THE ANIMATION
  * (NEW: This now moves in one continuous direction)
 
  * (This is unchanged from before)
 
  */
  */
@keyframes moveGradient {
@keyframes moveGradient {
  /* Start at the beginning of the gradient */
 
   0% {
   0% { background-position: 0% 50%; }
    background-position: 0% 50%;
 
   }
   50% { background-position: 100% 50%; }
   /* * Move all the way to the end of the 400% wide gradient.
 
  * It will then instantly snap back to 0% (since it's a loop),
   100% { background-position: 0% 50%; }
  * creating a continuous "around the border" effect.
 
  */
}
  100% {
 
    background-position: 400% 50%;
.event {
  }
display: flex;
flex-direction: column;
justify-content: flex-start;
}
 
.event-bar {
display: flex;
align-items: center;      /* vertical alignment */
justify-content: space-between; /* left vs right spacing */
padding: 10px 20px;
background-color: #121011;
color: #fff;
}
 
.menu-right {
display: flex;
gap: 20px;
}
}

Latest revision as of 23:41, 8 November 2025

.home-header {
	position: relative;
	padding-top: 3.2rem;
	padding-bottom: 3.2rem;
	line-height: 1.1;
	text-align: center;
}

.home-header__pretitle {
	color: #888;
	font-size: 0.9em;
	letter-spacing: 0.05em;
	margin: -0.8rem;
}

.home-header__title {
	margin: 0;
	font-size: 4.5rem;
	text-transform: uppercase;
	line-height: 0.9;
	font-weight: 600;
}

.home-header__subtitle {
	margin-top: -0.6rem;
	color: #888;
	font-size: 0.9em;
}


/*
 * 1. STYLES FOR THE BUTTON ITSELF
 * (Now with Flexbox for icon alignment)
 */
/* This is the PARENT container */
.gradient-border {
  /* CRITICAL: This "contains" the child element */
	  position: relative; 
  
  /* This padding defines the *overall size and shape* of the button */
  /* DO NOT REMOVE THIS */
	  padding: 25px 25px;
  
  /* These are good for centering the button on the page */
	  max-width: 600px;
	  margin: 32px auto;

	  background: #1c1f2b; /* Fallback color */
	  border-radius: 9999px; /* Changed to pill shape */
	  z-index: 0;
	  

  /* NOTE: You still need your ::before pseudo-element */
  /* (like .gradient-border::before) to create the gradient! */
  /* This class only holds the content. */
}

/* This is the CHILD (the button face) */
.search-box {
	  /* Use absolute positioning to fill the parent */
	  position: absolute;
	  top: 0;
	  left: 0;
	  width: 100%;
	  height: 100%;
	  
	  
	  /* These center the text/icon *inside* this element */
	  display: flex;
	  align-items: center;
	  justify-content: center;
	  gap: 6px;
	
	  /* Styling for the button face */
	  border-radius: 9999px;
	  background-color: #121011;
	  color: #eee;
	  font-size: 14px;
	  font-weight: 500;
	  cursor: pointer;
	
	  /* Sits on top of the parent */
	  z-index: 1; 
}
 
 .gradient-border::before {
	 	
	  border-radius: 9999px;
	
	  content: '';
	
	  position: absolute;
	
	  z-index: -1;
	
	  top: -4px;
	
	  left: -4px;
	
	  width: calc(100% + 8px);
	
	  height: calc(100% + 8px);
	
	  background: linear-gradient(90deg, 
	
	    #87bfdb, #77abC8, #6797b5, #577f9d, #476684, #43668a, 
	
	    #3e668f, #304a66, #212d3d, #304a66, #3e668f, #43668a, 
	
	    #476684, #577f9d, #6797b5, #77abC8, #87bfdb

  );

	  background-size: 400% 400%;
	
	  filter: blur(4px);
	
	  animation: moveGradient 10s linear infinite;
	
	  transition: all 0.5s ease;
	  
	  opacity: 0.5;

}


.gradient-border:hover {

	  background-color: #1a1a1a;

}



.gradient-border:hover::before {
	
	width: calc(100% + 8px);
	
	height: calc(100% + 8px);

  background: linear-gradient(90deg, 

    #120d0e, #321d13, #512d19, #713d1e, #90571d, #b0701b, 

    #cf8a1a, #de9822, #eeA529, #fdb331, #eeA529, #de9822, 

    #cf8a1a, #b0701b, #90571d, #713d1e, #512d19, #321d13, #120d0e

  );

	  background-size: 400% 400%;
	
	  filter: blur(8px);
	
	  animation: moveGradient 10s linear infinite;
	
	  transition: all 0.5s ease;
	  
	  opacity: 0.5;

}



/*

 * 5. THE KEYFRAMES FOR THE ANIMATION

 * (This is unchanged from before)

 */

@keyframes moveGradient {

  0% { background-position: 0% 50%; }

  50% { background-position: 100% 50%; }

  100% { background-position: 0% 50%; }

}

.event {
	display: flex;
	flex-direction: column;
	justify-content: flex-start;
}

.event-bar {
	display: flex;
	align-items: center;      /* vertical alignment */
	justify-content: space-between; /* left vs right spacing */
	padding: 10px 20px;
	background-color: #121011;
	color: #fff;
}

.menu-right {
	display: flex;
	gap: 20px;
}