99 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
			
		
		
	
	
			99 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			CSS
		
	
	
	
	
	
| 
 | |
| 
 | |
| * {
 | |
|     --font-size: 1cm;
 | |
| }
 | |
| 
 | |
| .container {
 | |
|     margin: 1ex;
 | |
|     padding: 1ex;
 | |
|     border: none;
 | |
|     display: flex;
 | |
|     align-items: center;
 | |
|     /* width: 11em; */
 | |
|     /* height: 4em; */
 | |
| }
 | |
| 
 | |
| 
 | |
| .permutation {
 | |
|     display: flex;
 | |
|     flex-direction: row;
 | |
| }
 | |
| 
 | |
| .parenthesis {
 | |
|     display: inline;
 | |
|     font-size: calc(2.2 * var(--font-size));
 | |
|     transform: scaleX(0.5) translateY(calc(-0.05 * var(--font-size)));
 | |
| }
 | |
| 
 | |
| .lines {
 | |
|     display: flex;
 | |
|     flex-direction: column;
 | |
| }
 | |
| 
 | |
| .text {
 | |
|     display: flex;
 | |
|     flex-direction: row;
 | |
|     flex-wrap: nowrap;
 | |
|     gap: calc(var(--font-size)/2);
 | |
|     font-size: var(--font-size);
 | |
|     font-family: serif;
 | |
| }
 | |
| 
 | |
| .text > div {
 | |
|     flex-basis: min-content;
 | |
|     flex-grow: 1;
 | |
|     text-align: center;
 | |
| }
 | |
| 
 | |
| 
 | |
| .perm {
 | |
|     /* animation-fill-mode: forwards; */
 | |
|     animation-duration: 3s;
 | |
|     /* animation-fill-mode: forwards; */
 | |
|     animation-timing-function: quartic;
 | |
|     animation-direction: alternate;
 | |
|     animation-iteration-count: infinite;
 | |
| }
 | |
| 
 | |
| .perm.shift-of-1 { animation-name: shift_1; }
 | |
| .perm.shift-of-1.reverse { animation-name: shift_1_reverse; }
 | |
| 
 | |
| .perm.shift-of-2 { animation-name: shift_2; }
 | |
| .perm.shift-of-2.reverse { animation-name: shift_2_reverse; }
 | |
| 
 | |
| .perm.shift-of-3 { animation-name: shift_3; }
 | |
| .perm.shift-of-3.reverse { animation-name: shift_3_reverse; }
 | |
| 
 | |
| .perm.shift-of-4 { animation-name: shift_4; }
 | |
| .perm.shift-of-4.reverse { animation-name: shift_4_reverse; }
 | |
| 
 | |
| .perm.shift-of-5 { animation-name: shift_5; }
 | |
| .perm.shift-of-5.reverse { animation-name: shift_5_reverse; }
 | |
| 
 | |
| .perm.shift-of-6 { animation-name: shift_6; }
 | |
| .perm.shift-of-6.reverse { animation-name: shift_6_reverse; }
 | |
| 
 | |
| 
 | |
| 
 | |
| @keyframes shift_1 { 90%, to { transform: translateX(calc(var(--font-size))); } }
 | |
| @keyframes shift_1_reverse { 90%, to { transform: translateX(calc(-1 * var(--font-size))); } }
 | |
| 
 | |
| @keyframes shift_2 { 90%, to { transform: translateX(calc(2 * var(--font-size))); } }
 | |
| @keyframes shift_2_reverse { 90%, to { transform: translateX(calc(-2 * var(--font-size))); } }
 | |
| 
 | |
| @keyframes shift_3 { 90%, to { transform: translateX(calc(3 * var(--font-size))); } }
 | |
| @keyframes shift_3_reverse { 90%, to { transform: translateX(calc(-3 * var(--font-size))); } }
 | |
| 
 | |
| @keyframes shift_4 { 90%, to { transform: translateX(calc(4 * var(--font-size))); } }
 | |
| @keyframes shift_4_reverse { 90%, to { transform: translateX(calc(-4 * var(--font-size))); } }
 | |
| 
 | |
| @keyframes shift_5 { 90%, to { transform: translateX(calc(5 * var(--font-size))); } }
 | |
| @keyframes shift_5_reverse { 90%, to { transform: translateX(calc(-5 * var(--font-size))); } }
 | |
| 
 | |
| @keyframes shift_6 { 90%, to { transform: translateX(calc(6 * var(--font-size))); } }
 | |
| @keyframes shift_6_reverse { 90%, to { transform: translateX(calc(-6 * var(--font-size))); } }
 | |
| 
 | |
| 
 | |
| 
 |