New mission: revamp the portals to make them look actually tolerable to the eye. They are currently placeholders as of now.
The Gold Network: Soyworld | SNCApedia | SoyPlace


I'm not dead, just inactive for the moment. Faggot (talk) 20:16, 9 April 2026 (UTC)

Template:3DOneFace/styles.css: Difference between revisions

From SNCApedia, the shit nobody cares about encyclopedia
Jump to navigationJump to search
No edit summary
mNo edit summary
 
(9 intermediate revisions by the same user not shown)
Line 1: Line 1:
/* ================================
/* Template:3DOneFace/styles.css
  Template:3DOneFace/styles.css
   Inline 3D swinging text. Namespaced with onef- to avoid conflicts */
   Fake-3D via foreshortening only
  2D transforms — MediaWiki safe
  ================================ */


 
.onef-scene, .onef-axis, .onef-side {
/* === CORE === */
    display: inline-block;
 
    vertical-align: middle;
.onef-wrapper {
  display: inline-block;
  vertical-align: middle;
}
}


.onef-face {
/* Hover instantly kills ONLY the active animations and snaps flat to 0deg */
  display: inline-block;
.onef-scene:hover .onef-sm-15, .onef-scene:hover .onef-rd-15,
  animation-name: onef-jiggle-normal;
.onef-scene:hover .onef-sm-30, .onef-scene:hover .onef-rd-30,
  animation-timing-function: ease-in-out;
.onef-scene:hover .onef-sm-45, .onef-scene:hover .onef-rd-45,
  animation-iteration-count: infinite;
.onef-scene:hover .onef-sm-60, .onef-scene:hover .onef-rd-60,
.onef-scene:hover .onef-sm-90, .onef-scene:hover .onef-rd-90 {
    animation: none !important;
    transform: rotate(0deg) !important;
}
}


 
/* Clean up image wrappers */
/* === INTENSITY LEVELS === */
.onef-side a.image, .onef-side figure {
 
    background: transparent !important;
.onef-low    .onef-face { animation-name: onef-jiggle-low; }
    border: none !important;
.onef-normal .onef-face { animation-name: onef-jiggle-normal; }
    box-shadow: none !important;
.onef-high  .onef-face { animation-name: onef-jiggle-high; }
    padding: 0 !important;
 
    margin: 0 !important;
 
/* === KEYFRAMES: LOW === */
/* subtle tilt, card barely moves away from viewer */
 
@keyframes onef-jiggle-low {
  0%  { transform: scaleX(1)    scaleY(1); }
  14%  { transform: scaleX(0.88) scaleY(0.97); }
  30%  { transform: scaleX(0.95) scaleY(0.85); }
  47%  { transform: scaleX(0.82) scaleY(0.93); }
  61%  { transform: scaleX(0.91) scaleY(0.80); }
  78%  { transform: scaleX(0.86) scaleY(0.96); }
  90%  { transform: scaleX(0.93) scaleY(0.88); }
  100% { transform: scaleX(1)    scaleY(1); }
}
}
 
.onef-side img, .onef-side video {
 
    width: 100%; height: 100%; object-fit: contain;  
/* === KEYFRAMES: NORMAL === */
/* noticeable random tilt in 3D space */
 
@keyframes onef-jiggle-normal {
  0%  { transform: scaleX(1)    scaleY(1); }
  11%  { transform: scaleX(0.72) scaleY(0.94); }
  26% { transform: scaleX(0.90) scaleY(0.65); }
  39%  { transform: scaleX(0.58) scaleY(0.88); }
  54%  { transform: scaleX(0.85) scaleY(0.60); }
  67%  { transform: scaleX(0.63) scaleY(0.91); }
  81%  { transform: scaleX(0.79) scaleY(0.70); }
  93%  { transform: scaleX(0.55) scaleY(0.86); }
  100% { transform: scaleX(1)    scaleY(1); }
}
 
 
/* === KEYFRAMES: HIGH === */
/* dramatic tilt, nearly edge-on at times */
 
@keyframes onef-jiggle-high {
  0%  { transform: scaleX(1)    scaleY(1); }
  9%  { transform: scaleX(0.45) scaleY(0.92); }
  22%  { transform: scaleX(0.88) scaleY(0.38); }
  36%  { transform: scaleX(0.32) scaleY(0.85); }
  51%  { transform: scaleX(0.80) scaleY(0.30); }
  63%  { transform: scaleX(0.40) scaleY(0.90); }
  77%  { transform: scaleX(0.88) scaleY(0.42); }
  89%  { transform: scaleX(0.35) scaleY(0.82); }
  100% { transform: scaleX(1)    scaleY(1); }
}
}


/* ===== 15 DEGREE TIER ===== */
.onef-sm-15 { animation: onef-s-15 ease-in-out infinite; }
.onef-rd-15 { animation: onef-r-15 ease-in-out infinite; }
@keyframes onef-s-15 { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(15deg); } 75% { transform: rotate(-15deg); } }
@keyframes onef-r-15 { 0%, 100% { transform: rotate(0deg); } 15%, 30% { transform: rotate(15deg); } 40%, 55% { transform: rotate(-7deg); } 65%, 75% { transform: rotate(7deg); } 85%, 95% { transform: rotate(-15deg); } }


/* === HOVER: SNAP FLAT === */
/* ===== 30 DEGREE TIER ===== */
 
.onef-sm-30 { animation: onef-s-30 ease-in-out infinite; }
.onef-wrapper:hover .onef-face {
.onef-rd-30 { animation: onef-r-30 ease-in-out infinite; }
  animation-play-state: paused;
@keyframes onef-s-30 { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(30deg); } 75% { transform: rotate(-30deg); } }
  transform: scaleX(1) scaleY(1);
@keyframes onef-r-30 { 0%, 100% { transform: rotate(0deg); } 15%, 30% { transform: rotate(30deg); } 40%, 55% { transform: rotate(-15deg); } 65%, 75% { transform: rotate(15deg); } 85%, 95% { transform: rotate(-30deg); } }
  transition: transform 0.15s ease-out;
}


.onef-nohover:hover .onef-face {
/* ===== 45 DEGREE TIER ===== */
  animation-play-state: running;
.onef-sm-45 { animation: onef-s-45 ease-in-out infinite; }
  transform: none;
.onef-rd-45 { animation: onef-r-45 ease-in-out infinite; }
  transition: none;
@keyframes onef-s-45 { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(45deg); } 75% { transform: rotate(-45deg); } }
}
@keyframes onef-r-45 { 0%, 100% { transform: rotate(0deg); } 15%, 30% { transform: rotate(45deg); } 40%, 55% { transform: rotate(-22deg); } 65%, 75% { transform: rotate(22deg); } 85%, 95% { transform: rotate(-45deg); } }


/* ===== 60 DEGREE TIER ===== */
.onef-sm-60 { animation: onef-s-60 ease-in-out infinite; }
.onef-rd-60 { animation: onef-r-60 ease-in-out infinite; }
@keyframes onef-s-60 { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(60deg); } 75% { transform: rotate(-60deg); } }
@keyframes onef-r-60 { 0%, 100% { transform: rotate(0deg); } 15%, 30% { transform: rotate(60deg); } 40%, 55% { transform: rotate(-30deg); } 65%, 75% { transform: rotate(30deg); } 85%, 95% { transform: rotate(-60deg); } }


/* === REDUCED MOTION SAFETY === */
/* ===== 90 DEGREE TIER ===== */
.onef-sm-90 { animation: onef-s-90 ease-in-out infinite; }
.onef-rd-90 { animation: onef-r-90 ease-in-out infinite; }
@keyframes onef-s-90 { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(90deg); } 75% { transform: rotate(-90deg); } }
@keyframes onef-r-90 { 0%, 100% { transform: rotate(0deg); } 15%, 30% { transform: rotate(90deg); } 40%, 55% { transform: rotate(-45deg); } 65%, 75% { transform: rotate(45deg); } 85%, 95% { transform: rotate(-90deg); } }


@media (prefers-reduced-motion: reduce) {
@media (prefers-reduced-motion: reduce) {[class*="onef-sm-"], [class*="onef-rd-"] { animation: none !important; }
  .onef-face {
    animation: none;
    transform: none;
  }
  .onef-wrapper:hover .onef-face {
    transform: none;
    transition: none;
  }
}
}

Latest revision as of 20:13, 18 April 2026

/* Template:3DOneFace/styles.css
   Inline 3D swinging text. Namespaced with onef- to avoid conflicts */

.onef-scene, .onef-axis, .onef-side {
    display: inline-block;
    vertical-align: middle;
}

/* Hover instantly kills ONLY the active animations and snaps flat to 0deg */
.onef-scene:hover .onef-sm-15, .onef-scene:hover .onef-rd-15,
.onef-scene:hover .onef-sm-30, .onef-scene:hover .onef-rd-30,
.onef-scene:hover .onef-sm-45, .onef-scene:hover .onef-rd-45,
.onef-scene:hover .onef-sm-60, .onef-scene:hover .onef-rd-60,
.onef-scene:hover .onef-sm-90, .onef-scene:hover .onef-rd-90 {
    animation: none !important;
    transform: rotate(0deg) !important;
}

/* Clean up image wrappers */
.onef-side a.image, .onef-side figure {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
}
.onef-side img, .onef-side video {
    width: 100%; height: 100%; object-fit: contain; 
}

/* ===== 15 DEGREE TIER ===== */
.onef-sm-15 { animation: onef-s-15 ease-in-out infinite; }
.onef-rd-15 { animation: onef-r-15 ease-in-out infinite; }
@keyframes onef-s-15 { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(15deg); } 75% { transform: rotate(-15deg); } }
@keyframes onef-r-15 { 0%, 100% { transform: rotate(0deg); } 15%, 30% { transform: rotate(15deg); } 40%, 55% { transform: rotate(-7deg); } 65%, 75% { transform: rotate(7deg); } 85%, 95% { transform: rotate(-15deg); } }

/* ===== 30 DEGREE TIER ===== */
.onef-sm-30 { animation: onef-s-30 ease-in-out infinite; }
.onef-rd-30 { animation: onef-r-30 ease-in-out infinite; }
@keyframes onef-s-30 { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(30deg); } 75% { transform: rotate(-30deg); } }
@keyframes onef-r-30 { 0%, 100% { transform: rotate(0deg); } 15%, 30% { transform: rotate(30deg); } 40%, 55% { transform: rotate(-15deg); } 65%, 75% { transform: rotate(15deg); } 85%, 95% { transform: rotate(-30deg); } }

/* ===== 45 DEGREE TIER ===== */
.onef-sm-45 { animation: onef-s-45 ease-in-out infinite; }
.onef-rd-45 { animation: onef-r-45 ease-in-out infinite; }
@keyframes onef-s-45 { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(45deg); } 75% { transform: rotate(-45deg); } }
@keyframes onef-r-45 { 0%, 100% { transform: rotate(0deg); } 15%, 30% { transform: rotate(45deg); } 40%, 55% { transform: rotate(-22deg); } 65%, 75% { transform: rotate(22deg); } 85%, 95% { transform: rotate(-45deg); } }

/* ===== 60 DEGREE TIER ===== */
.onef-sm-60 { animation: onef-s-60 ease-in-out infinite; }
.onef-rd-60 { animation: onef-r-60 ease-in-out infinite; }
@keyframes onef-s-60 { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(60deg); } 75% { transform: rotate(-60deg); } }
@keyframes onef-r-60 { 0%, 100% { transform: rotate(0deg); } 15%, 30% { transform: rotate(60deg); } 40%, 55% { transform: rotate(-30deg); } 65%, 75% { transform: rotate(30deg); } 85%, 95% { transform: rotate(-60deg); } }

/* ===== 90 DEGREE TIER ===== */
.onef-sm-90 { animation: onef-s-90 ease-in-out infinite; }
.onef-rd-90 { animation: onef-r-90 ease-in-out infinite; }
@keyframes onef-s-90 { 0%, 100% { transform: rotate(0deg); } 25% { transform: rotate(90deg); } 75% { transform: rotate(-90deg); } }
@keyframes onef-r-90 { 0%, 100% { transform: rotate(0deg); } 15%, 30% { transform: rotate(90deg); } 40%, 55% { transform: rotate(-45deg); } 65%, 75% { transform: rotate(45deg); } 85%, 95% { transform: rotate(-90deg); } }

@media (prefers-reduced-motion: reduce) {[class*="onef-sm-"], [class*="onef-rd-"] { animation: none !important; }
}