├── ITCAMP.png ├── README.md ├── animate.css ├── animation.html ├── favicon.ico ├── fixed-position-mysaly.html ├── index.html ├── sahypa-qrcode.png └── style.css /ITCAMP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustem-garr/html-css-sapaklar/8e092bac6fe8ed5e98e47fe560abbb61084b8ebe/ITCAMP.png -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Aşakdaky ssylka basyp siz HTML, CSS we CSS Animasiýa işleýiş düzgünlerniň mysallarny görüp bilersiňiz:
2 | https://rustem-garr.github.io/html-css-sapaklar/ 3 | 4 | Ýa-da şu asakdaky qrcode skan edip html-css-animasiýa sapaklar saýta geçip bilersiňiz: 5 | ![alt text](https://github.com/rustem-garr/html-css-sapaklar/blob/main/sahypa-qrcode.png?raw=true) 6 | -------------------------------------------------------------------------------- /animate.css: -------------------------------------------------------------------------------- 1 | @charset "UTF-8"; 2 | 3 | /*! 4 | * animate.css -http://daneden.me/animate 5 | * Version - 3.5.2 6 | * Licensed under the MIT license - http://opensource.org/licenses/MIT 7 | * 8 | * Copyright (c) 2017 Daniel Eden 9 | */ 10 | 11 | .animated { 12 | animation-duration: 1s; 13 | animation-fill-mode: both; 14 | } 15 | 16 | .animated.infinite { 17 | animation-iteration-count: infinite; 18 | } 19 | 20 | .animated.hinge { 21 | animation-duration: 2s; 22 | } 23 | 24 | .animated.flipOutX, 25 | .animated.flipOutY, 26 | .animated.bounceIn, 27 | .animated.bounceOut { 28 | animation-duration: .75s; 29 | } 30 | 31 | @keyframes bounce { 32 | from, 20%, 53%, 80%, to { 33 | animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); 34 | transform: translate3d(0,0,0); 35 | } 36 | 37 | 40%, 43% { 38 | animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); 39 | transform: translate3d(0, -30px, 0); 40 | } 41 | 42 | 70% { 43 | animation-timing-function: cubic-bezier(0.755, 0.050, 0.855, 0.060); 44 | transform: translate3d(0, -15px, 0); 45 | } 46 | 47 | 90% { 48 | transform: translate3d(0,-4px,0); 49 | } 50 | } 51 | 52 | .bounce { 53 | animation-name: bounce; 54 | transform-origin: center bottom; 55 | } 56 | 57 | @keyframes flash { 58 | from, 50%, to { 59 | opacity: 1; 60 | } 61 | 62 | 25%, 75% { 63 | opacity: 0; 64 | } 65 | } 66 | 67 | .flash { 68 | animation-name: flash; 69 | } 70 | 71 | /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ 72 | 73 | @keyframes pulse { 74 | from { 75 | transform: scale3d(1, 1, 1); 76 | } 77 | 78 | 50% { 79 | transform: scale3d(1.05, 1.05, 1.05); 80 | } 81 | 82 | to { 83 | transform: scale3d(1, 1, 1); 84 | } 85 | } 86 | 87 | .pulse { 88 | animation-name: pulse; 89 | } 90 | 91 | @keyframes rubberBand { 92 | from { 93 | transform: scale3d(1, 1, 1); 94 | } 95 | 96 | 30% { 97 | transform: scale3d(1.25, 0.75, 1); 98 | } 99 | 100 | 40% { 101 | transform: scale3d(0.75, 1.25, 1); 102 | } 103 | 104 | 50% { 105 | transform: scale3d(1.15, 0.85, 1); 106 | } 107 | 108 | 65% { 109 | transform: scale3d(.95, 1.05, 1); 110 | } 111 | 112 | 75% { 113 | transform: scale3d(1.05, .95, 1); 114 | } 115 | 116 | to { 117 | transform: scale3d(1, 1, 1); 118 | } 119 | } 120 | 121 | .rubberBand { 122 | animation-name: rubberBand; 123 | } 124 | 125 | @keyframes shake { 126 | from, to { 127 | transform: translate3d(0, 0, 0); 128 | } 129 | 130 | 10%, 30%, 50%, 70%, 90% { 131 | transform: translate3d(-10px, 0, 0); 132 | } 133 | 134 | 20%, 40%, 60%, 80% { 135 | transform: translate3d(10px, 0, 0); 136 | } 137 | } 138 | 139 | .shake { 140 | animation-name: shake; 141 | } 142 | 143 | @keyframes headShake { 144 | 0% { 145 | transform: translateX(0); 146 | } 147 | 148 | 6.5% { 149 | transform: translateX(-6px) rotateY(-9deg); 150 | } 151 | 152 | 18.5% { 153 | transform: translateX(5px) rotateY(7deg); 154 | } 155 | 156 | 31.5% { 157 | transform: translateX(-3px) rotateY(-5deg); 158 | } 159 | 160 | 43.5% { 161 | transform: translateX(2px) rotateY(3deg); 162 | } 163 | 164 | 50% { 165 | transform: translateX(0); 166 | } 167 | } 168 | 169 | .headShake { 170 | animation-timing-function: ease-in-out; 171 | animation-name: headShake; 172 | } 173 | 174 | @keyframes swing { 175 | 20% { 176 | transform: rotate3d(0, 0, 1, 15deg); 177 | } 178 | 179 | 40% { 180 | transform: rotate3d(0, 0, 1, -10deg); 181 | } 182 | 183 | 60% { 184 | transform: rotate3d(0, 0, 1, 5deg); 185 | } 186 | 187 | 80% { 188 | transform: rotate3d(0, 0, 1, -5deg); 189 | } 190 | 191 | to { 192 | transform: rotate3d(0, 0, 1, 0deg); 193 | } 194 | } 195 | 196 | .swing { 197 | transform-origin: top center; 198 | animation-name: swing; 199 | } 200 | 201 | @keyframes tada { 202 | from { 203 | transform: scale3d(1, 1, 1); 204 | } 205 | 206 | 10%, 20% { 207 | transform: scale3d(.9, .9, .9) rotate3d(0, 0, 1, -3deg); 208 | } 209 | 210 | 30%, 50%, 70%, 90% { 211 | transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); 212 | } 213 | 214 | 40%, 60%, 80% { 215 | transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); 216 | } 217 | 218 | to { 219 | transform: scale3d(1, 1, 1); 220 | } 221 | } 222 | 223 | .tada { 224 | animation-name: tada; 225 | } 226 | 227 | /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ 228 | 229 | @keyframes wobble { 230 | from { 231 | transform: none; 232 | } 233 | 234 | 15% { 235 | transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); 236 | } 237 | 238 | 30% { 239 | transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); 240 | } 241 | 242 | 45% { 243 | transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); 244 | } 245 | 246 | 60% { 247 | transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); 248 | } 249 | 250 | 75% { 251 | transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); 252 | } 253 | 254 | to { 255 | transform: none; 256 | } 257 | } 258 | 259 | .wobble { 260 | animation-name: wobble; 261 | } 262 | 263 | @keyframes jello { 264 | from, 11.1%, to { 265 | transform: none; 266 | } 267 | 268 | 22.2% { 269 | transform: skewX(-12.5deg) skewY(-12.5deg); 270 | } 271 | 272 | 33.3% { 273 | transform: skewX(6.25deg) skewY(6.25deg); 274 | } 275 | 276 | 44.4% { 277 | transform: skewX(-3.125deg) skewY(-3.125deg); 278 | } 279 | 280 | 55.5% { 281 | transform: skewX(1.5625deg) skewY(1.5625deg); 282 | } 283 | 284 | 66.6% { 285 | transform: skewX(-0.78125deg) skewY(-0.78125deg); 286 | } 287 | 288 | 77.7% { 289 | transform: skewX(0.390625deg) skewY(0.390625deg); 290 | } 291 | 292 | 88.8% { 293 | transform: skewX(-0.1953125deg) skewY(-0.1953125deg); 294 | } 295 | } 296 | 297 | .jello { 298 | animation-name: jello; 299 | transform-origin: center; 300 | } 301 | 302 | @keyframes bounceIn { 303 | from, 20%, 40%, 60%, 80%, to { 304 | animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); 305 | } 306 | 307 | 0% { 308 | opacity: 0; 309 | transform: scale3d(.3, .3, .3); 310 | } 311 | 312 | 20% { 313 | transform: scale3d(1.1, 1.1, 1.1); 314 | } 315 | 316 | 40% { 317 | transform: scale3d(.9, .9, .9); 318 | } 319 | 320 | 60% { 321 | opacity: 1; 322 | transform: scale3d(1.03, 1.03, 1.03); 323 | } 324 | 325 | 80% { 326 | transform: scale3d(.97, .97, .97); 327 | } 328 | 329 | to { 330 | opacity: 1; 331 | transform: scale3d(1, 1, 1); 332 | } 333 | } 334 | 335 | .bounceIn { 336 | animation-name: bounceIn; 337 | } 338 | 339 | @keyframes bounceInDown { 340 | from, 60%, 75%, 90%, to { 341 | animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); 342 | } 343 | 344 | 0% { 345 | opacity: 0; 346 | transform: translate3d(0, -3000px, 0); 347 | } 348 | 349 | 60% { 350 | opacity: 1; 351 | transform: translate3d(0, 25px, 0); 352 | } 353 | 354 | 75% { 355 | transform: translate3d(0, -10px, 0); 356 | } 357 | 358 | 90% { 359 | transform: translate3d(0, 5px, 0); 360 | } 361 | 362 | to { 363 | transform: none; 364 | } 365 | } 366 | 367 | .bounceInDown { 368 | animation-name: bounceInDown; 369 | } 370 | 371 | @keyframes bounceInLeft { 372 | from, 60%, 75%, 90%, to { 373 | animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); 374 | } 375 | 376 | 0% { 377 | opacity: 0; 378 | transform: translate3d(-3000px, 0, 0); 379 | } 380 | 381 | 60% { 382 | opacity: 1; 383 | transform: translate3d(25px, 0, 0); 384 | } 385 | 386 | 75% { 387 | transform: translate3d(-10px, 0, 0); 388 | } 389 | 390 | 90% { 391 | transform: translate3d(5px, 0, 0); 392 | } 393 | 394 | to { 395 | transform: none; 396 | } 397 | } 398 | 399 | .bounceInLeft { 400 | animation-name: bounceInLeft; 401 | } 402 | 403 | @keyframes bounceInRight { 404 | from, 60%, 75%, 90%, to { 405 | animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); 406 | } 407 | 408 | from { 409 | opacity: 0; 410 | transform: translate3d(3000px, 0, 0); 411 | } 412 | 413 | 60% { 414 | opacity: 1; 415 | transform: translate3d(-25px, 0, 0); 416 | } 417 | 418 | 75% { 419 | transform: translate3d(10px, 0, 0); 420 | } 421 | 422 | 90% { 423 | transform: translate3d(-5px, 0, 0); 424 | } 425 | 426 | to { 427 | transform: none; 428 | } 429 | } 430 | 431 | .bounceInRight { 432 | animation-name: bounceInRight; 433 | } 434 | 435 | @keyframes bounceInUp { 436 | from, 60%, 75%, 90%, to { 437 | animation-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1.000); 438 | } 439 | 440 | from { 441 | opacity: 0; 442 | transform: translate3d(0, 3000px, 0); 443 | } 444 | 445 | 60% { 446 | opacity: 1; 447 | transform: translate3d(0, -20px, 0); 448 | } 449 | 450 | 75% { 451 | transform: translate3d(0, 10px, 0); 452 | } 453 | 454 | 90% { 455 | transform: translate3d(0, -5px, 0); 456 | } 457 | 458 | to { 459 | transform: translate3d(0, 0, 0); 460 | } 461 | } 462 | 463 | .bounceInUp { 464 | animation-name: bounceInUp; 465 | } 466 | 467 | @keyframes bounceOut { 468 | 20% { 469 | transform: scale3d(.9, .9, .9); 470 | } 471 | 472 | 50%, 55% { 473 | opacity: 1; 474 | transform: scale3d(1.1, 1.1, 1.1); 475 | } 476 | 477 | to { 478 | opacity: 0; 479 | transform: scale3d(.3, .3, .3); 480 | } 481 | } 482 | 483 | .bounceOut { 484 | animation-name: bounceOut; 485 | } 486 | 487 | @keyframes bounceOutDown { 488 | 20% { 489 | transform: translate3d(0, 10px, 0); 490 | } 491 | 492 | 40%, 45% { 493 | opacity: 1; 494 | transform: translate3d(0, -20px, 0); 495 | } 496 | 497 | to { 498 | opacity: 0; 499 | transform: translate3d(0, 2000px, 0); 500 | } 501 | } 502 | 503 | .bounceOutDown { 504 | animation-name: bounceOutDown; 505 | } 506 | 507 | @keyframes bounceOutLeft { 508 | 20% { 509 | opacity: 1; 510 | transform: translate3d(20px, 0, 0); 511 | } 512 | 513 | to { 514 | opacity: 0; 515 | transform: translate3d(-2000px, 0, 0); 516 | } 517 | } 518 | 519 | .bounceOutLeft { 520 | animation-name: bounceOutLeft; 521 | } 522 | 523 | @keyframes bounceOutRight { 524 | 20% { 525 | opacity: 1; 526 | transform: translate3d(-20px, 0, 0); 527 | } 528 | 529 | to { 530 | opacity: 0; 531 | transform: translate3d(2000px, 0, 0); 532 | } 533 | } 534 | 535 | .bounceOutRight { 536 | animation-name: bounceOutRight; 537 | } 538 | 539 | @keyframes bounceOutUp { 540 | 20% { 541 | transform: translate3d(0, -10px, 0); 542 | } 543 | 544 | 40%, 45% { 545 | opacity: 1; 546 | transform: translate3d(0, 20px, 0); 547 | } 548 | 549 | to { 550 | opacity: 0; 551 | transform: translate3d(0, -2000px, 0); 552 | } 553 | } 554 | 555 | .bounceOutUp { 556 | animation-name: bounceOutUp; 557 | } 558 | 559 | @keyframes fadeIn { 560 | from { 561 | opacity: 0; 562 | } 563 | 564 | to { 565 | opacity: 1; 566 | } 567 | } 568 | 569 | .fadeIn { 570 | animation-name: fadeIn; 571 | } 572 | 573 | @keyframes fadeInDown { 574 | from { 575 | opacity: 0; 576 | transform: translate3d(0, -100%, 0); 577 | } 578 | 579 | to { 580 | opacity: 1; 581 | transform: none; 582 | } 583 | } 584 | 585 | .fadeInDown { 586 | animation-name: fadeInDown; 587 | } 588 | 589 | @keyframes fadeInDownBig { 590 | from { 591 | opacity: 0; 592 | transform: translate3d(0, -2000px, 0); 593 | } 594 | 595 | to { 596 | opacity: 1; 597 | transform: none; 598 | } 599 | } 600 | 601 | .fadeInDownBig { 602 | animation-name: fadeInDownBig; 603 | } 604 | 605 | @keyframes fadeInLeft { 606 | from { 607 | opacity: 0; 608 | transform: translate3d(-100%, 0, 0); 609 | } 610 | 611 | to { 612 | opacity: 1; 613 | transform: none; 614 | } 615 | } 616 | 617 | .fadeInLeft { 618 | animation-name: fadeInLeft; 619 | } 620 | 621 | @keyframes fadeInLeftBig { 622 | from { 623 | opacity: 0; 624 | transform: translate3d(-2000px, 0, 0); 625 | } 626 | 627 | to { 628 | opacity: 1; 629 | transform: none; 630 | } 631 | } 632 | 633 | .fadeInLeftBig { 634 | animation-name: fadeInLeftBig; 635 | } 636 | 637 | @keyframes fadeInRight { 638 | from { 639 | opacity: 0; 640 | transform: translate3d(100%, 0, 0); 641 | } 642 | 643 | to { 644 | opacity: 1; 645 | transform: none; 646 | } 647 | } 648 | 649 | .fadeInRight { 650 | animation-name: fadeInRight; 651 | } 652 | 653 | @keyframes fadeInRightBig { 654 | from { 655 | opacity: 0; 656 | transform: translate3d(2000px, 0, 0); 657 | } 658 | 659 | to { 660 | opacity: 1; 661 | transform: none; 662 | } 663 | } 664 | 665 | .fadeInRightBig { 666 | animation-name: fadeInRightBig; 667 | } 668 | 669 | @keyframes fadeInUp { 670 | from { 671 | opacity: 0; 672 | transform: translate3d(0, 100%, 0); 673 | } 674 | 675 | to { 676 | opacity: 1; 677 | transform: none; 678 | } 679 | } 680 | 681 | .fadeInUp { 682 | animation-name: fadeInUp; 683 | } 684 | 685 | @keyframes fadeInUpBig { 686 | from { 687 | opacity: 0; 688 | transform: translate3d(0, 2000px, 0); 689 | } 690 | 691 | to { 692 | opacity: 1; 693 | transform: none; 694 | } 695 | } 696 | 697 | .fadeInUpBig { 698 | animation-name: fadeInUpBig; 699 | } 700 | 701 | @keyframes fadeOut { 702 | from { 703 | opacity: 1; 704 | } 705 | 706 | to { 707 | opacity: 0; 708 | } 709 | } 710 | 711 | .fadeOut { 712 | animation-name: fadeOut; 713 | } 714 | 715 | @keyframes fadeOutDown { 716 | from { 717 | opacity: 1; 718 | } 719 | 720 | to { 721 | opacity: 0; 722 | transform: translate3d(0, 100%, 0); 723 | } 724 | } 725 | 726 | .fadeOutDown { 727 | animation-name: fadeOutDown; 728 | } 729 | 730 | @keyframes fadeOutDownBig { 731 | from { 732 | opacity: 1; 733 | } 734 | 735 | to { 736 | opacity: 0; 737 | transform: translate3d(0, 2000px, 0); 738 | } 739 | } 740 | 741 | .fadeOutDownBig { 742 | animation-name: fadeOutDownBig; 743 | } 744 | 745 | @keyframes fadeOutLeft { 746 | from { 747 | opacity: 1; 748 | } 749 | 750 | to { 751 | opacity: 0; 752 | transform: translate3d(-100%, 0, 0); 753 | } 754 | } 755 | 756 | .fadeOutLeft { 757 | animation-name: fadeOutLeft; 758 | } 759 | 760 | @keyframes fadeOutLeftBig { 761 | from { 762 | opacity: 1; 763 | } 764 | 765 | to { 766 | opacity: 0; 767 | transform: translate3d(-2000px, 0, 0); 768 | } 769 | } 770 | 771 | .fadeOutLeftBig { 772 | animation-name: fadeOutLeftBig; 773 | } 774 | 775 | @keyframes fadeOutRight { 776 | from { 777 | opacity: 1; 778 | } 779 | 780 | to { 781 | opacity: 0; 782 | transform: translate3d(100%, 0, 0); 783 | } 784 | } 785 | 786 | .fadeOutRight { 787 | animation-name: fadeOutRight; 788 | } 789 | 790 | @keyframes fadeOutRightBig { 791 | from { 792 | opacity: 1; 793 | } 794 | 795 | to { 796 | opacity: 0; 797 | transform: translate3d(2000px, 0, 0); 798 | } 799 | } 800 | 801 | .fadeOutRightBig { 802 | animation-name: fadeOutRightBig; 803 | } 804 | 805 | @keyframes fadeOutUp { 806 | from { 807 | opacity: 1; 808 | } 809 | 810 | to { 811 | opacity: 0; 812 | transform: translate3d(0, -100%, 0); 813 | } 814 | } 815 | 816 | .fadeOutUp { 817 | animation-name: fadeOutUp; 818 | } 819 | 820 | @keyframes fadeOutUpBig { 821 | from { 822 | opacity: 1; 823 | } 824 | 825 | to { 826 | opacity: 0; 827 | transform: translate3d(0, -2000px, 0); 828 | } 829 | } 830 | 831 | .fadeOutUpBig { 832 | animation-name: fadeOutUpBig; 833 | } 834 | 835 | @keyframes flip { 836 | from { 837 | transform: perspective(400px) rotate3d(0, 1, 0, -360deg); 838 | animation-timing-function: ease-out; 839 | } 840 | 841 | 40% { 842 | transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -190deg); 843 | animation-timing-function: ease-out; 844 | } 845 | 846 | 50% { 847 | transform: perspective(400px) translate3d(0, 0, 150px) rotate3d(0, 1, 0, -170deg); 848 | animation-timing-function: ease-in; 849 | } 850 | 851 | 80% { 852 | transform: perspective(400px) scale3d(.95, .95, .95); 853 | animation-timing-function: ease-in; 854 | } 855 | 856 | to { 857 | transform: perspective(400px); 858 | animation-timing-function: ease-in; 859 | } 860 | } 861 | 862 | .animated.flip { 863 | -webkit-backface-visibility: visible; 864 | backface-visibility: visible; 865 | animation-name: flip; 866 | } 867 | 868 | @keyframes flipInX { 869 | from { 870 | transform: perspective(400px) rotate3d(1, 0, 0, 90deg); 871 | animation-timing-function: ease-in; 872 | opacity: 0; 873 | } 874 | 875 | 40% { 876 | transform: perspective(400px) rotate3d(1, 0, 0, -20deg); 877 | animation-timing-function: ease-in; 878 | } 879 | 880 | 60% { 881 | transform: perspective(400px) rotate3d(1, 0, 0, 10deg); 882 | opacity: 1; 883 | } 884 | 885 | 80% { 886 | transform: perspective(400px) rotate3d(1, 0, 0, -5deg); 887 | } 888 | 889 | to { 890 | transform: perspective(400px); 891 | } 892 | } 893 | 894 | .flipInX { 895 | -webkit-backface-visibility: visible !important; 896 | backface-visibility: visible !important; 897 | animation-name: flipInX; 898 | } 899 | 900 | @keyframes flipInY { 901 | from { 902 | transform: perspective(400px) rotate3d(0, 1, 0, 90deg); 903 | animation-timing-function: ease-in; 904 | opacity: 0; 905 | } 906 | 907 | 40% { 908 | transform: perspective(400px) rotate3d(0, 1, 0, -20deg); 909 | animation-timing-function: ease-in; 910 | } 911 | 912 | 60% { 913 | transform: perspective(400px) rotate3d(0, 1, 0, 10deg); 914 | opacity: 1; 915 | } 916 | 917 | 80% { 918 | transform: perspective(400px) rotate3d(0, 1, 0, -5deg); 919 | } 920 | 921 | to { 922 | transform: perspective(400px); 923 | } 924 | } 925 | 926 | .flipInY { 927 | -webkit-backface-visibility: visible !important; 928 | backface-visibility: visible !important; 929 | animation-name: flipInY; 930 | } 931 | 932 | @keyframes flipOutX { 933 | from { 934 | transform: perspective(400px); 935 | } 936 | 937 | 30% { 938 | transform: perspective(400px) rotate3d(1, 0, 0, -20deg); 939 | opacity: 1; 940 | } 941 | 942 | to { 943 | transform: perspective(400px) rotate3d(1, 0, 0, 90deg); 944 | opacity: 0; 945 | } 946 | } 947 | 948 | .flipOutX { 949 | animation-name: flipOutX; 950 | -webkit-backface-visibility: visible !important; 951 | backface-visibility: visible !important; 952 | } 953 | 954 | @keyframes flipOutY { 955 | from { 956 | transform: perspective(400px); 957 | } 958 | 959 | 30% { 960 | transform: perspective(400px) rotate3d(0, 1, 0, -15deg); 961 | opacity: 1; 962 | } 963 | 964 | to { 965 | transform: perspective(400px) rotate3d(0, 1, 0, 90deg); 966 | opacity: 0; 967 | } 968 | } 969 | 970 | .flipOutY { 971 | -webkit-backface-visibility: visible !important; 972 | backface-visibility: visible !important; 973 | animation-name: flipOutY; 974 | } 975 | 976 | @keyframes lightSpeedIn { 977 | from { 978 | transform: translate3d(100%, 0, 0) skewX(-30deg); 979 | opacity: 0; 980 | } 981 | 982 | 60% { 983 | transform: skewX(20deg); 984 | opacity: 1; 985 | } 986 | 987 | 80% { 988 | transform: skewX(-5deg); 989 | opacity: 1; 990 | } 991 | 992 | to { 993 | transform: none; 994 | opacity: 1; 995 | } 996 | } 997 | 998 | .lightSpeedIn { 999 | animation-name: lightSpeedIn; 1000 | animation-timing-function: ease-out; 1001 | } 1002 | 1003 | @keyframes lightSpeedOut { 1004 | from { 1005 | opacity: 1; 1006 | } 1007 | 1008 | to { 1009 | transform: translate3d(100%, 0, 0) skewX(30deg); 1010 | opacity: 0; 1011 | } 1012 | } 1013 | 1014 | .lightSpeedOut { 1015 | animation-name: lightSpeedOut; 1016 | animation-timing-function: ease-in; 1017 | } 1018 | 1019 | @keyframes rotateIn { 1020 | from { 1021 | transform-origin: center; 1022 | transform: rotate3d(0, 0, 1, -200deg); 1023 | opacity: 0; 1024 | } 1025 | 1026 | to { 1027 | transform-origin: center; 1028 | transform: none; 1029 | opacity: 1; 1030 | } 1031 | } 1032 | 1033 | .rotateIn { 1034 | animation-name: rotateIn; 1035 | } 1036 | 1037 | @keyframes rotateInDownLeft { 1038 | from { 1039 | transform-origin: left bottom; 1040 | transform: rotate3d(0, 0, 1, -45deg); 1041 | opacity: 0; 1042 | } 1043 | 1044 | to { 1045 | transform-origin: left bottom; 1046 | transform: none; 1047 | opacity: 1; 1048 | } 1049 | } 1050 | 1051 | .rotateInDownLeft { 1052 | animation-name: rotateInDownLeft; 1053 | } 1054 | 1055 | @keyframes rotateInDownRight { 1056 | from { 1057 | transform-origin: right bottom; 1058 | transform: rotate3d(0, 0, 1, 45deg); 1059 | opacity: 0; 1060 | } 1061 | 1062 | to { 1063 | transform-origin: right bottom; 1064 | transform: none; 1065 | opacity: 1; 1066 | } 1067 | } 1068 | 1069 | .rotateInDownRight { 1070 | animation-name: rotateInDownRight; 1071 | } 1072 | 1073 | @keyframes rotateInUpLeft { 1074 | from { 1075 | transform-origin: left bottom; 1076 | transform: rotate3d(0, 0, 1, 45deg); 1077 | opacity: 0; 1078 | } 1079 | 1080 | to { 1081 | transform-origin: left bottom; 1082 | transform: none; 1083 | opacity: 1; 1084 | } 1085 | } 1086 | 1087 | .rotateInUpLeft { 1088 | animation-name: rotateInUpLeft; 1089 | } 1090 | 1091 | @keyframes rotateInUpRight { 1092 | from { 1093 | transform-origin: right bottom; 1094 | transform: rotate3d(0, 0, 1, -90deg); 1095 | opacity: 0; 1096 | } 1097 | 1098 | to { 1099 | transform-origin: right bottom; 1100 | transform: none; 1101 | opacity: 1; 1102 | } 1103 | } 1104 | 1105 | .rotateInUpRight { 1106 | animation-name: rotateInUpRight; 1107 | } 1108 | 1109 | @keyframes rotateOut { 1110 | from { 1111 | transform-origin: center; 1112 | opacity: 1; 1113 | } 1114 | 1115 | to { 1116 | transform-origin: center; 1117 | transform: rotate3d(0, 0, 1, 200deg); 1118 | opacity: 0; 1119 | } 1120 | } 1121 | 1122 | .rotateOut { 1123 | animation-name: rotateOut; 1124 | } 1125 | 1126 | @keyframes rotateOutDownLeft { 1127 | from { 1128 | transform-origin: left bottom; 1129 | opacity: 1; 1130 | } 1131 | 1132 | to { 1133 | transform-origin: left bottom; 1134 | transform: rotate3d(0, 0, 1, 45deg); 1135 | opacity: 0; 1136 | } 1137 | } 1138 | 1139 | .rotateOutDownLeft { 1140 | animation-name: rotateOutDownLeft; 1141 | } 1142 | 1143 | @keyframes rotateOutDownRight { 1144 | from { 1145 | transform-origin: right bottom; 1146 | opacity: 1; 1147 | } 1148 | 1149 | to { 1150 | transform-origin: right bottom; 1151 | transform: rotate3d(0, 0, 1, -45deg); 1152 | opacity: 0; 1153 | } 1154 | } 1155 | 1156 | .rotateOutDownRight { 1157 | animation-name: rotateOutDownRight; 1158 | } 1159 | 1160 | @keyframes rotateOutUpLeft { 1161 | from { 1162 | transform-origin: left bottom; 1163 | opacity: 1; 1164 | } 1165 | 1166 | to { 1167 | transform-origin: left bottom; 1168 | transform: rotate3d(0, 0, 1, -45deg); 1169 | opacity: 0; 1170 | } 1171 | } 1172 | 1173 | .rotateOutUpLeft { 1174 | animation-name: rotateOutUpLeft; 1175 | } 1176 | 1177 | @keyframes rotateOutUpRight { 1178 | from { 1179 | transform-origin: right bottom; 1180 | opacity: 1; 1181 | } 1182 | 1183 | to { 1184 | transform-origin: right bottom; 1185 | transform: rotate3d(0, 0, 1, 90deg); 1186 | opacity: 0; 1187 | } 1188 | } 1189 | 1190 | .rotateOutUpRight { 1191 | animation-name: rotateOutUpRight; 1192 | } 1193 | 1194 | @keyframes hinge { 1195 | 0% { 1196 | transform-origin: top left; 1197 | animation-timing-function: ease-in-out; 1198 | } 1199 | 1200 | 20%, 60% { 1201 | transform: rotate3d(0, 0, 1, 80deg); 1202 | transform-origin: top left; 1203 | animation-timing-function: ease-in-out; 1204 | } 1205 | 1206 | 40%, 80% { 1207 | transform: rotate3d(0, 0, 1, 60deg); 1208 | transform-origin: top left; 1209 | animation-timing-function: ease-in-out; 1210 | opacity: 1; 1211 | } 1212 | 1213 | to { 1214 | transform: translate3d(0, 700px, 0); 1215 | opacity: 0; 1216 | } 1217 | } 1218 | 1219 | .hinge { 1220 | animation-name: hinge; 1221 | } 1222 | 1223 | @keyframes jackInTheBox { 1224 | from { 1225 | opacity: 0; 1226 | transform: scale(0.1) rotate(30deg); 1227 | transform-origin: center bottom; 1228 | } 1229 | 1230 | 50% { 1231 | transform: rotate(-10deg); 1232 | } 1233 | 1234 | 70% { 1235 | transform: rotate(3deg); 1236 | } 1237 | 1238 | to { 1239 | opacity: 1; 1240 | transform: scale(1); 1241 | } 1242 | } 1243 | 1244 | .jackInTheBox { 1245 | animation-name: jackInTheBox; 1246 | } 1247 | 1248 | /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ 1249 | 1250 | @keyframes rollIn { 1251 | from { 1252 | opacity: 0; 1253 | transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); 1254 | } 1255 | 1256 | to { 1257 | opacity: 1; 1258 | transform: none; 1259 | } 1260 | } 1261 | 1262 | .rollIn { 1263 | animation-name: rollIn; 1264 | } 1265 | 1266 | /* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ 1267 | 1268 | @keyframes rollOut { 1269 | from { 1270 | opacity: 1; 1271 | } 1272 | 1273 | to { 1274 | opacity: 0; 1275 | transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); 1276 | } 1277 | } 1278 | 1279 | .rollOut { 1280 | animation-name: rollOut; 1281 | } 1282 | 1283 | @keyframes zoomIn { 1284 | from { 1285 | opacity: 0; 1286 | transform: scale3d(.3, .3, .3); 1287 | } 1288 | 1289 | 50% { 1290 | opacity: 1; 1291 | } 1292 | } 1293 | 1294 | .zoomIn { 1295 | animation-name: zoomIn; 1296 | } 1297 | 1298 | @keyframes zoomInDown { 1299 | from { 1300 | opacity: 0; 1301 | transform: scale3d(.1, .1, .1) translate3d(0, -1000px, 0); 1302 | animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); 1303 | } 1304 | 1305 | 60% { 1306 | opacity: 1; 1307 | transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); 1308 | animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); 1309 | } 1310 | } 1311 | 1312 | .zoomInDown { 1313 | animation-name: zoomInDown; 1314 | } 1315 | 1316 | @keyframes zoomInLeft { 1317 | from { 1318 | opacity: 0; 1319 | transform: scale3d(.1, .1, .1) translate3d(-1000px, 0, 0); 1320 | animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); 1321 | } 1322 | 1323 | 60% { 1324 | opacity: 1; 1325 | transform: scale3d(.475, .475, .475) translate3d(10px, 0, 0); 1326 | animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); 1327 | } 1328 | } 1329 | 1330 | .zoomInLeft { 1331 | animation-name: zoomInLeft; 1332 | } 1333 | 1334 | @keyframes zoomInRight { 1335 | from { 1336 | opacity: 0; 1337 | transform: scale3d(.1, .1, .1) translate3d(1000px, 0, 0); 1338 | animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); 1339 | } 1340 | 1341 | 60% { 1342 | opacity: 1; 1343 | transform: scale3d(.475, .475, .475) translate3d(-10px, 0, 0); 1344 | animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); 1345 | } 1346 | } 1347 | 1348 | .zoomInRight { 1349 | animation-name: zoomInRight; 1350 | } 1351 | 1352 | @keyframes zoomInUp { 1353 | from { 1354 | opacity: 0; 1355 | transform: scale3d(.1, .1, .1) translate3d(0, 1000px, 0); 1356 | animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); 1357 | } 1358 | 1359 | 60% { 1360 | opacity: 1; 1361 | transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); 1362 | animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); 1363 | } 1364 | } 1365 | 1366 | .zoomInUp { 1367 | animation-name: zoomInUp; 1368 | } 1369 | 1370 | @keyframes zoomOut { 1371 | from { 1372 | opacity: 1; 1373 | } 1374 | 1375 | 50% { 1376 | opacity: 0; 1377 | transform: scale3d(.3, .3, .3); 1378 | } 1379 | 1380 | to { 1381 | opacity: 0; 1382 | } 1383 | } 1384 | 1385 | .zoomOut { 1386 | animation-name: zoomOut; 1387 | } 1388 | 1389 | @keyframes zoomOutDown { 1390 | 40% { 1391 | opacity: 1; 1392 | transform: scale3d(.475, .475, .475) translate3d(0, -60px, 0); 1393 | animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); 1394 | } 1395 | 1396 | to { 1397 | opacity: 0; 1398 | transform: scale3d(.1, .1, .1) translate3d(0, 2000px, 0); 1399 | transform-origin: center bottom; 1400 | animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); 1401 | } 1402 | } 1403 | 1404 | .zoomOutDown { 1405 | animation-name: zoomOutDown; 1406 | } 1407 | 1408 | @keyframes zoomOutLeft { 1409 | 40% { 1410 | opacity: 1; 1411 | transform: scale3d(.475, .475, .475) translate3d(42px, 0, 0); 1412 | } 1413 | 1414 | to { 1415 | opacity: 0; 1416 | transform: scale(.1) translate3d(-2000px, 0, 0); 1417 | transform-origin: left center; 1418 | } 1419 | } 1420 | 1421 | .zoomOutLeft { 1422 | animation-name: zoomOutLeft; 1423 | } 1424 | 1425 | @keyframes zoomOutRight { 1426 | 40% { 1427 | opacity: 1; 1428 | transform: scale3d(.475, .475, .475) translate3d(-42px, 0, 0); 1429 | } 1430 | 1431 | to { 1432 | opacity: 0; 1433 | transform: scale(.1) translate3d(2000px, 0, 0); 1434 | transform-origin: right center; 1435 | } 1436 | } 1437 | 1438 | .zoomOutRight { 1439 | animation-name: zoomOutRight; 1440 | } 1441 | 1442 | @keyframes zoomOutUp { 1443 | 40% { 1444 | opacity: 1; 1445 | transform: scale3d(.475, .475, .475) translate3d(0, 60px, 0); 1446 | animation-timing-function: cubic-bezier(0.550, 0.055, 0.675, 0.190); 1447 | } 1448 | 1449 | to { 1450 | opacity: 0; 1451 | transform: scale3d(.1, .1, .1) translate3d(0, -2000px, 0); 1452 | transform-origin: center bottom; 1453 | animation-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); 1454 | } 1455 | } 1456 | 1457 | .zoomOutUp { 1458 | animation-name: zoomOutUp; 1459 | } 1460 | 1461 | @keyframes slideInDown { 1462 | from { 1463 | transform: translate3d(0, -100%, 0); 1464 | visibility: visible; 1465 | } 1466 | 1467 | to { 1468 | transform: translate3d(0, 0, 0); 1469 | } 1470 | } 1471 | 1472 | .slideInDown { 1473 | animation-name: slideInDown; 1474 | } 1475 | 1476 | @keyframes slideInLeft { 1477 | from { 1478 | transform: translate3d(-100%, 0, 0); 1479 | visibility: visible; 1480 | } 1481 | 1482 | to { 1483 | transform: translate3d(0, 0, 0); 1484 | } 1485 | } 1486 | 1487 | .slideInLeft { 1488 | animation-name: slideInLeft; 1489 | } 1490 | 1491 | @keyframes slideInRight { 1492 | from { 1493 | transform: translate3d(100%, 0, 0); 1494 | visibility: visible; 1495 | } 1496 | 1497 | to { 1498 | transform: translate3d(0, 0, 0); 1499 | } 1500 | } 1501 | 1502 | .slideInRight { 1503 | animation-name: slideInRight; 1504 | } 1505 | 1506 | @keyframes slideInUp { 1507 | from { 1508 | transform: translate3d(0, 100%, 0); 1509 | visibility: visible; 1510 | } 1511 | 1512 | to { 1513 | transform: translate3d(0, 0, 0); 1514 | } 1515 | } 1516 | 1517 | .slideInUp { 1518 | animation-name: slideInUp; 1519 | } 1520 | 1521 | @keyframes slideOutDown { 1522 | from { 1523 | transform: translate3d(0, 0, 0); 1524 | } 1525 | 1526 | to { 1527 | visibility: hidden; 1528 | transform: translate3d(0, 100%, 0); 1529 | } 1530 | } 1531 | 1532 | .slideOutDown { 1533 | animation-name: slideOutDown; 1534 | } 1535 | 1536 | @keyframes slideOutLeft { 1537 | from { 1538 | transform: translate3d(0, 0, 0); 1539 | } 1540 | 1541 | to { 1542 | visibility: hidden; 1543 | transform: translate3d(-100%, 0, 0); 1544 | } 1545 | } 1546 | 1547 | .slideOutLeft { 1548 | animation-name: slideOutLeft; 1549 | } 1550 | 1551 | @keyframes slideOutRight { 1552 | from { 1553 | transform: translate3d(0, 0, 0); 1554 | } 1555 | 1556 | to { 1557 | visibility: hidden; 1558 | transform: translate3d(100%, 0, 0); 1559 | } 1560 | } 1561 | 1562 | .slideOutRight { 1563 | animation-name: slideOutRight; 1564 | } 1565 | 1566 | @keyframes slideOutUp { 1567 | from { 1568 | transform: translate3d(0, 0, 0); 1569 | } 1570 | 1571 | to { 1572 | visibility: hidden; 1573 | transform: translate3d(0, -100%, 0); 1574 | } 1575 | } 1576 | 1577 | .slideOutUp { 1578 | animation-name: slideOutUp; 1579 | } 1580 | -------------------------------------------------------------------------------- /animation.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Animation and Transitions 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 36 |
37 |

Animation and Transitions

38 |
39 |

Transition template

40 |
41 |

Transition all properties

42 |
43 | .element { 44 | transition: 1s all; 45 | 46 | /* Add other properties such as transform, margin, etc. */ 47 | } 48 |
49 |
50 |
51 |
52 |

Transitions

53 |

Different states may be defined using pseudo-classes like 54 | :hover or 55 | :active or dynamically set using JavaScript.

56 |
57 |

transition-duration:

58 |
59 |
60 |
61 |
62 | 0.7s; 63 |
64 |
65 |
66 |
67 |
68 | 1s; 69 |
70 |
71 |
72 |
73 |
74 | 2s; 75 |
76 |
77 |
78 |
79 |
80 | 3s; 81 |
82 |
83 |
84 |

transition-timing-function:

85 |
86 |
87 |
88 |
89 |
90 | linear; 91 |
92 |
93 |
94 |
95 |
96 | ease; 97 |
98 |
99 |
100 |
101 |
102 | ease-in; 103 |
104 |
105 |
106 |
107 |
108 | ease-out; 109 |
110 |
111 |
112 |
113 |
114 | ease-in-out; 115 |
116 |
117 |
118 |
119 |
120 | steps(4); 121 |
122 |
123 |
124 |
125 |
126 | steps(10); 127 |
128 |
129 |
130 |
131 |
132 | step-start; 133 |
134 |
135 |
136 |
137 |
138 | step-end; 139 |
140 |
141 |
142 |
143 |

transition-delay:

144 |
145 |
146 |
147 |
148 | 0s; 149 |
150 |
151 |
152 |
153 |
154 | 0.3s; 155 |
156 |
157 |
158 |
159 |
160 | 0.7s; 161 |
162 |
163 |
164 |
165 |
166 | 1.5s; 167 |
168 |
169 |
170 |

transition-property:

171 |

Transition a specific property (other properties jump to final state).

172 |
173 |
174 |
A
175 |
176 | all; 177 |
178 |
179 |
180 |
A
181 |
182 | color; 183 |
184 |
185 |
186 |
A
187 |
188 | margin; 189 |
190 |
191 |
192 |
A
193 |
194 | background; 195 |
196 |
197 |
198 |
199 |

Transition examples

200 |
201 |

Card

202 |
203 |
204 |
205 |
A
206 |
B
207 |
208 |
209 |
210 | HTML 211 | <div class="ex-card"> 212 | <div class="card"> 213 | <div class="card-front">A</div> 214 | <div class="card-back">B</div> 215 | </div> 216 | </div> 217 |
218 |
219 | CSS 220 | .ex-card:hover .card { 221 | transform: rotateY(180deg) translateX(100%); 222 | } 223 | 224 | .ex-card { 225 | perspective: 300px; 226 | } 227 | 228 | .card { 229 | transition: 0.7s; 230 | transform-style: preserve-3d; 231 | transform-origin: right; 232 | position: relative; 233 | } 234 | 235 | .card-front, .card-back { 236 | backface-visibility: hidden; 237 | position: absolute; 238 | } 239 | 240 | .card-back { 241 | transform: rotateY(180deg) translateZ(1px); 242 | } 243 |
244 |
245 |
246 |
247 |

Tooltip

248 |
249 |
250 |
251 |

This is a tooltip message.

252 |
253 |
254 | HTML 255 | <div class="ex-tooltip"> 256 | <div class="box biggest"></div> 257 | <p class="tooltip">This is a tooltip message.</p> 258 | </div> 259 |
260 |
261 | CSS 262 | .tooltip { 263 | background-color: transparent; 264 | border-radius: 8px; 265 | color: transparent; 266 | font-size: 0.7em; 267 | position: absolute; 268 | transition: 0.5s; 269 | padding: 0.5em 1em; 270 | margin-top: 0; 271 | z-index: 1000; 272 | } 273 | 274 | .ex-tooltip:hover > .tooltip { 275 | background-color: yellow; 276 | color: black; 277 | font-size: 1.2em; 278 | } 279 |
280 |
281 |
282 |
283 |

Translation

284 |
285 |
286 |
287 |
288 |
289 | CSS 290 | .container .box { 291 | transition: 1s all; 292 | } 293 | 294 | .container:hover .box { 295 | transform: translateX(200px); 296 | } 297 |
298 |
299 |
300 |
301 |

Translation

302 | 303 |
304 |
305 |
306 |

CSS animation

307 |

See 308 | MDN on CSS animations. Also check out 309 | GreenSock.

310 |
311 |

animation-duration:

312 |
313 |
314 |
315 |
316 | 0.7s; 317 |
318 |
319 |
320 |
321 |
322 | 1s; 323 |
324 |
325 |
326 |
327 |
328 | 2s; 329 |
330 |
331 |
332 |
333 |
334 | 3s; 335 |
336 |
337 |
338 |

animation-direction:

339 |
340 |
341 |
342 |
343 | normal; 344 |
345 |
346 |
347 |
348 |
349 | alternate; 350 |
351 |
352 |
353 |
354 |
355 | reverse; 356 |
357 |
358 |
359 |
360 |
361 | alternate-reverse; 362 |
363 |
364 |
365 |

animation-iteration-count:

366 |
367 |
368 |
369 |
370 | 1; 371 |
372 |
373 |
374 |
375 |
376 | 2; 377 |
378 |
379 |
380 |
381 |
382 | infinite; 383 |
384 |
385 |
386 |

animation-timing-function:

387 |
388 |
389 |
390 |
391 |
392 | linear; 393 |
394 |
395 |
396 |
397 |
398 | ease; 399 |
400 |
401 |
402 |
403 |
404 | ease-in; 405 |
406 |
407 |
408 |
409 |
410 | ease-out; 411 |
412 |
413 |
414 |
415 |
416 | ease-in-out; 417 |
418 |
419 |
420 |
421 |
422 | steps(4); 423 |
424 |
425 |
426 |
427 |
428 | steps(10); 429 |
430 |
431 |
432 |
433 |
434 | step-start; 435 |
436 |
437 |
438 |
439 |
440 | step-end; 441 |
442 |
443 |
444 |
445 |

animation-fill-mode:

446 |

447 | Initial state 448 | Delay state 1s 449 | Animate 1s 450 | End state 451 |

452 |
453 |
454 |
A
455 |
456 | none; 457 |
458 |
459 |
460 |
A
461 |
462 | forwards; 463 |
464 |
465 |
466 |
A
467 |
468 | backwards; 469 |
470 |
471 |
472 |
A
473 |
474 | both; 475 |
476 |
477 |
478 | 479 | 480 |
481 |

Animation Keyframes

482 |
483 |

Slide right

484 |
485 |
486 |
487 |
488 | @keyframes slideright { 489 | from { 490 | margin-left: 0%; 491 | } 492 | to { 493 | margin-left: 80%; 494 | } 495 | } 496 |
497 |
498 |
499 |

Set background color

500 |
501 |
502 |
503 |
504 | @keyframes showbackground { 505 | from { 506 | background-color: blue; 507 | } 508 | to { 509 | background-color: red; 510 | } 511 | } 512 |
513 |
514 |
515 |

Grow size

516 |
517 |
518 |
519 |
520 | @keyframes growsize { 521 | from { 522 | height: 1em; 523 | width: 1em; 524 | } 525 | to { 526 | height: 4em; 527 | width: 4em; 528 | } 529 | } 530 |
531 |
532 |
533 |

Cursor

534 |
535 |
536 |
537 |
538 | @keyframes cursor { 539 | 50% { 540 | border-color: transparent; 541 | } 542 | } 543 |
544 |
545 |
546 | 547 |
548 |

Using animate.css

549 |
550 |

Attention

551 |
552 |
553 |
554 |

bounce

555 |
556 | class="animated bounce" 557 |
558 |
559 |
560 |

flash

561 |
562 | class="animated flash" 563 |
564 |
565 |
566 |

pulse

567 |
568 | class="animated pulse" 569 |
570 |
571 |
572 |

rubberBand

573 |
574 | class="animated rubberBand" 575 |
576 |
577 |
578 |

shake

579 |
580 | class="animated shake" 581 |
582 |
583 |
584 |

headShake

585 |
586 | class="animated headShake" 587 |
588 |
589 |
590 |

swing

591 |
592 | class="animated swing" 593 |
594 |
595 |
596 |

tada

597 |
598 | class="animated tada" 599 |
600 |
601 |
602 |

wobble

603 |
604 | class="animated wobble" 605 |
606 |
607 |
608 |

jello

609 |
610 | class="animated jello" 611 |
612 |
613 |
614 |
615 |

Bouncing entrances

616 |
617 |
618 |

bounceIn

619 |
620 | class="animated bounceIn" 621 |
622 |
623 |
624 |

bounceInDown

625 |
626 | class="animated bounceInDown" 627 |
628 |
629 |
630 |

bounceInLeft

631 |
632 | class="animated bounceInLeft" 633 |
634 |
635 |
636 |

bounceInRight

637 |
638 | class="animated bounceInRight" 639 |
640 |
641 |
642 |

bounceInUp

643 |
644 | class="animated bounceInUp" 645 |
646 |
647 |
648 |

Bouncing exits

649 |
650 |
651 |

bounceOut

652 |
653 | class="animated bounceOut" 654 |
655 |
656 |
657 |

bounceOutDown

658 |
659 | class="animated bounceOutDown" 660 |
661 |
662 |
663 |

bounceOutLeft

664 |
665 | class="animated bounceOutLeft" 666 |
667 |
668 |
669 |

bounceOutRight

670 |
671 | class="animated bounceOutRight" 672 |
673 |
674 |
675 |

bounceOutUp

676 |
677 | class="animated bounceOutUp" 678 |
679 |
680 |
681 |

Fading entrances

682 |
683 |
684 |
685 |

fadeIn

686 |
687 | class="animated fadeIn" 688 |
689 |
690 |
691 |

fadeInDown

692 |
693 | class="animated fadeInDown" 694 |
695 |
696 |
697 |

fadeInDownBig

698 |
699 | class="animated fadeInDownBig" 700 |
701 |
702 |
703 |

fadeInLeft

704 |
705 | class="animated fadeInLeft" 706 |
707 |
708 |
709 |

fadeInLeftBig

710 |
711 | class="animated fadeInLeftBig" 712 |
713 |
714 |
715 |

fadeInRight

716 |
717 | class="animated fadeInRight" 718 |
719 |
720 |
721 |

fadeInRightBig

722 |
723 | class="animated fadeInRightBig" 724 |
725 |
726 |
727 |

fadeInUp

728 |
729 | class="animated fadeInUp" 730 |
731 |
732 |
733 |

fadeInUpBig

734 |
735 | class="animated fadeInUpBig" 736 |
737 |
738 |
739 |
740 |

Fading exits

741 |
742 |
743 |
744 |

fadeOut

745 |
746 | class="animated fadeOut" 747 |
748 |
749 |
750 |

fadeOutDown

751 |
752 | class="animated fadeOutDown" 753 |
754 |
755 |
756 |

fadeOutDownBig

757 |
758 | class="animated fadeOutDownBig" 759 |
760 |
761 |
762 |

fadeOutLeft

763 |
764 | class="animated fadeOutLeft" 765 |
766 |
767 |
768 |

fadeOutLeftBig

769 |
770 | class="animated fadeOutLeftBig" 771 |
772 |
773 |
774 |

fadeOutRight

775 |
776 | class="animated fadeOutRight" 777 |
778 |
779 |
780 |

fadeOutRightBig

781 |
782 | class="animated fadeOutRightBig" 783 |
784 |
785 |
786 |

fadeOutUp

787 |
788 | class="animated fadeOutUp" 789 |
790 |
791 |
792 |

fadeOutUpBig

793 |
794 | class="animated fadeOutUpBig" 795 |
796 |
797 |
798 |
799 |

Flips

800 |
801 |
802 |

flipInX

803 |
804 | class="animated flipInX" 805 |
806 |
807 |
808 |

flipInY

809 |
810 | class="animated flipInY" 811 |
812 |
813 |
814 |

flipOutX

815 |
816 | class="animated flipOutX" 817 |
818 |
819 |
820 |

flipOutY

821 |
822 | class="animated flipOutY" 823 |
824 |
825 |
826 |

Lightspeed

827 |
828 |
829 |

lightSpeedIn

830 |
831 | class="animated lightSpeedIn" 832 |
833 |
834 |
835 |

lightSpeedOut

836 |
837 | class="animated lightSpeedOut" 838 |
839 |
840 |
841 |

Rotating entrances

842 |
843 |
844 |

rotateIn

845 |
846 | class="animated rotateIn" 847 |
848 |
849 |
850 |

rotateInDownLeft

851 |
852 | class="animated rotateInDownLeft" 853 |
854 |
855 |
856 |

rotateInDownRight

857 |
858 | class="animated rotateInDownRight" 859 |
860 |
861 |
862 |

rotateInUpLeft

863 |
864 | class="animated rotateInUpLeft" 865 |
866 |
867 |
868 |

rotateInUpRight

869 |
870 | class="animated rotateInUpRight" 871 |
872 |
873 |
874 |

Rotating exits

875 |
876 |
877 |

rotateOut

878 |
879 | class="animated rotateOut" 880 |
881 |
882 |
883 |

rotateOutDownLeft

884 |
885 | class="animated rotateOutDownLeft" 886 |
887 |
888 |
889 |

rotateOutDownRight

890 |
891 | class="animated rotateOutDownRight" 892 |
893 |
894 |
895 |

rotateOutUpLeft

896 |
897 | class="animated rotateOutUpLeft" 898 |
899 |
900 |
901 |

rotateOutUpRight

902 |
903 | class="animated rotateOutUpRight" 904 |
905 |
906 |
907 |

Zoom entrances

908 |
909 |
910 |

zoomIn

911 |
912 | class="animated zoomIn" 913 |
914 |
915 |
916 |

zoomInDown

917 |
918 | class="animated zoomInDown" 919 |
920 |
921 |
922 |

zoomInLeft

923 |
924 | class="animated zoomInLeft" 925 |
926 |
927 |
928 |

zoomInRight

929 |
930 | class="animated zoomInRight" 931 |
932 |
933 |
934 |

zoomInUp

935 |
936 | class="animated zoomInUp" 937 |
938 |
939 |
940 |

Zoom exits

941 |
942 |
943 |

zoomOut

944 |
945 | class="animated zoomOut" 946 |
947 |
948 |
949 |

zoomOutDown

950 |
951 | class="animated zoomOutDown" 952 |
953 |
954 |
955 |

zoomOutLeft

956 |
957 | class="animated zoomOutLeft" 958 |
959 |
960 |
961 |

zoomOutRight

962 |
963 | class="animated zoomOutRight" 964 |
965 |
966 |
967 |

zoomOutUp

968 |
969 | class="animated zoomOutUp" 970 |
971 |
972 |
973 |

Slide entrances

974 |
975 |
976 |

slideInDown

977 |
978 | class="animated slideInDown" 979 |
980 |
981 |
982 |

slideInLeft

983 |
984 | class="animated slideInLeft" 985 |
986 |
987 |
988 |

slideInRight

989 |
990 | class="animated slideInRight" 991 |
992 |
993 |
994 |

slideInUp

995 |
996 | class="animated slideInUp" 997 |
998 |
999 |
1000 |

Slide exits

1001 |
1002 |
1003 |

slideOutDown

1004 |
1005 | class="animated slideOutDown" 1006 |
1007 |
1008 |
1009 |

slideOutLeft

1010 |
1011 | class="animated slideOutLeft" 1012 |
1013 |
1014 |
1015 |

slideOutRight

1016 |
1017 | class="animated slideOutRight" 1018 |
1019 |
1020 |
1021 |

slideOutUp

1022 |
1023 | class="animated slideOutUp" 1024 |
1025 |
1026 |
1027 |

Specials

1028 |
1029 |
1030 |

hinge

1031 |
1032 | class="animated hinge" 1033 |
1034 |
1035 |
1036 |

jackInTheBox

1037 |
1038 | class="animated jackInTheBox" 1039 |
1040 |
1041 |
1042 |

rollIn

1043 |
1044 | class="animated rollIn" 1045 |
1046 |
1047 |
1048 |

rollOut

1049 |
1050 | class="animated rollOut" 1051 |
1052 |
1053 |
1054 |
1055 | 1056 | 1057 | 1058 | -------------------------------------------------------------------------------- /favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustem-garr/html-css-sapaklar/8e092bac6fe8ed5e98e47fe560abbb61084b8ebe/favicon.ico -------------------------------------------------------------------------------- /fixed-position-mysaly.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | Title 6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 |
14 | Lorem ipsum dolor sit amet, consectetur adipiscing elit. Integer aliquam leo fringilla hendrerit efficitur. Maecenas bibendum 15 | iaculis purus eget placerat. Nunc aliquet tristique mauris, elementum suscipit ante congue sit amet. Mauris tempus 16 | tellus vitae felis volutpat sodales. Vestibulum a luctus neque. Ut malesuada lectus accumsan nibh laoreet, sit 17 | amet hendrerit nisl commodo. Nullam vel ultrices mauris. Vivamus malesuada auctor mollis. Nulla ultricies nisl 18 | rutrum sagittis condimentum. Aliquam sit amet tempus libero. Aenean iaculis arcu vel sapien pulvinar rhoncus. 19 | Etiam pellentesque eu risus vel euismod. Nullam efficitur euismod arcu, varius rhoncus sem elementum quis. Nunc 20 | in placerat orci, sit amet porttitor ex. Nunc varius tempor mattis. Aenean nunc nibh, bibendum vel facilisis 21 | vel, pellentesque sit amet mi. Phasellus venenatis venenatis turpis non pretium. Nulla malesuada justo eu elit 22 | sagittis, egestas aliquam nibh consequat. Vestibulum volutpat magna enim, ut eleifend eros vehicula vitae. Integer 23 | accumsan dui ex, at accumsan nulla faucibus sed. Donec feugiat scelerisque imperdiet. Nunc vitae tempor turpis, 24 | vel faucibus felis. Nam dignissim interdum turpis, vel pretium ipsum iaculis non. Duis laoreet dictum massa, 25 | in finibus sem malesuada vitae. 26 |
27 |
28 | left:0;
top:0;
29 |
30 |
31 | left:0;
bottom:0;
32 |
33 |
34 | right:0;
top:0;
35 |
36 |
37 | right:0;
bottom:0;
38 |
39 |
40 | 41 | 42 | -------------------------------------------------------------------------------- /sahypa-qrcode.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/rustem-garr/html-css-sapaklar/8e092bac6fe8ed5e98e47fe560abbb61084b8ebe/sahypa-qrcode.png -------------------------------------------------------------------------------- /style.css: -------------------------------------------------------------------------------- 1 | :root { 2 | --bg-color-active: red; 3 | --bg-color-box: #aaa; 4 | --bg-color-header: rgb(5, 187, 5); 5 | --bg-color-highlight: #bbb; 6 | --bg-color-hover: green; 7 | --bg-color-light: white; 8 | --bg-color-link: yellow; 9 | --bg-color-nav: #1464c1; 10 | --bg-color-semitransparent: hsla(0, 0%, 40%, 0.8); 11 | --bg-color-visited: #ccc; 12 | --bg-color: #eee; 13 | --border-baseline: 2px solid gray; 14 | --border-bounds: 1px solid gray; 15 | --border-container: 2px solid #ccc; 16 | --border-flex: 1px dashed #777; 17 | --border-guides: 1px dashed black; 18 | --border-header: 2px solid rgb(15, 213, 15); 19 | --border-separator: 1px dashed #aaa; 20 | --border-subtle: 1px solid #999; 21 | --border-table: 2px solid black; 22 | --font-color-added: green; 23 | --font-color-dark: black; 24 | --font-color-light: white; 25 | --font-color-medium: #777; 26 | --font-family-code: "Source Code Pro", monospace; 27 | --font-family-main: "Source Sans Pro", sans-serif; 28 | --height-size-box: 100px; 29 | } 30 | 31 | nav { 32 | position: fixed; 33 | display: flex; 34 | justify-content: space-between; 35 | z-index: 1000; 36 | background-color: var(--bg-color-nav); 37 | min-width: 100px; 38 | min-height: 40px; 39 | width: 100%; 40 | } 41 | 42 | nav > ul { 43 | list-style: none; 44 | display: flex; 45 | } 46 | 47 | nav > ul.left { 48 | padding-left: 10px; 49 | } 50 | 51 | nav > ul > li { 52 | margin: 0px 20px; 53 | color: var(--font-color-light); 54 | display: flex; 55 | flex-direction: column; 56 | justify-content: center; 57 | } 58 | 59 | nav a:link, 60 | nav a:visited { 61 | color: var(--font-color-light); 62 | text-decoration: none; 63 | } 64 | 65 | nav .social-logo { 66 | display: block; 67 | width: 28px; 68 | height: 28px; 69 | } 70 | 71 | ul, 72 | ol { 73 | padding: 0; 74 | margin: 0; 75 | } 76 | 77 | body { 78 | font-family: var(--font-family-main); 79 | padding: 0; 80 | margin: 0; 81 | font-size: 14px; 82 | width: 100%; 83 | max-width: 2400px; 84 | } 85 | 86 | @media (min-width: 800px) { 87 | body { 88 | font-size: 16px; 89 | } 90 | nav { 91 | min-height: 60px; 92 | } 93 | nav .social-logo { 94 | width: 32px; 95 | height: 32px; 96 | } 97 | nav > ul.left { 98 | padding-left: 20px; 99 | } 100 | } 101 | 102 | .size-boxes { 103 | display: none; 104 | } 105 | 106 | #html, 107 | #animation-transitions { 108 | padding-top: 60px; 109 | } 110 | 111 | .size-box { 112 | z-index: 1000; 113 | position: fixed; 114 | height: var(--height-size-box); 115 | width: var(--height-size-box); 116 | top: 52px; 117 | color: var(--font-color-light); 118 | text-align: center; 119 | line-height: var(--height-size-box); 120 | } 121 | 122 | .size-box.box-1 { 123 | left: calc(0 * var(--height-size-box)); 124 | background-color: rgba(0%, 0%, 100%, 0.7); 125 | } 126 | .size-box.box-2 { 127 | left: calc(1 * var(--height-size-box)); 128 | background-color: rgba(20%, 0%, 80%, 0.7); 129 | } 130 | .size-box.box-3 { 131 | left: calc(2 * var(--height-size-box)); 132 | background-color: rgba(40%, 0%, 60%, 0.7); 133 | } 134 | .size-box.box-4 { 135 | left: calc(3 * var(--height-size-box)); 136 | background-color: rgba(60%, 0%, 40%, 0.7); 137 | } 138 | .size-box.box-5 { 139 | left: calc(4 * var(--height-size-box)); 140 | background-color: rgba(80%, 0%, 20%, 0.7); 141 | } 142 | .size-box.box-6 { 143 | left: calc(5 * var(--height-size-box)); 144 | background-color: rgba(0%, 0%, 100%, 0.7); 145 | } 146 | .size-box.box-7 { 147 | left: calc(6 * var(--height-size-box)); 148 | background-color: rgba(20%, 0%, 80%, 0.7); 149 | } 150 | .size-box.box-8 { 151 | left: calc(7 * var(--height-size-box)); 152 | background-color: rgba(40%, 0%, 60%, 0.7); 153 | } 154 | .size-box.box-9 { 155 | left: calc(8 * var(--height-size-box)); 156 | background-color: rgba(60%, 0%, 40%, 0.7); 157 | } 158 | .size-box.box-10 { 159 | left: calc(9 * var(--height-size-box)); 160 | background-color: rgba(80%, 0%, 20%, 0.7); 161 | } 162 | .size-box.box-11 { 163 | left: calc(10 * var(--height-size-box)); 164 | background-color: rgba(0%, 0%, 100%, 0.7); 165 | } 166 | .size-box.box-12 { 167 | left: calc(11 * var(--height-size-box)); 168 | background-color: rgba(20%, 0%, 80%, 0.7); 169 | } 170 | .size-box.box-13 { 171 | left: calc(12 * var(--height-size-box)); 172 | background-color: rgba(40%, 0%, 60%, 0.7); 173 | } 174 | .size-box.box-14 { 175 | left: calc(13 * var(--height-size-box)); 176 | background-color: rgba(60%, 0%, 40%, 0.7); 177 | } 178 | .size-box.box-15 { 179 | left: calc(14 * var(--height-size-box)); 180 | background-color: rgba(80%, 0%, 20%, 0.7); 181 | } 182 | .size-box.box-16 { 183 | left: calc(15 * var(--height-size-box)); 184 | background-color: rgba(0%, 0%, 100%, 0.7); 185 | } 186 | .size-box.box-17 { 187 | left: calc(16 * var(--height-size-box)); 188 | background-color: rgba(20%, 0%, 80%, 0.7); 189 | } 190 | .size-box.box-18 { 191 | left: calc(17 * var(--height-size-box)); 192 | background-color: rgba(40%, 0%, 60%, 0.7); 193 | } 194 | .size-box.box-19 { 195 | left: calc(18 * var(--height-size-box)); 196 | background-color: rgba(60%, 0%, 40%, 0.7); 197 | } 198 | .size-box.box-20 { 199 | left: calc(19 * var(--height-size-box)); 200 | background-color: rgba(80%, 0%, 20%, 0.7); 201 | } 202 | .size-box.box-21 { 203 | left: calc(20 * var(--height-size-box)); 204 | background-color: rgba(0%, 0%, 100%, 0.7); 205 | } 206 | .size-box.box-22 { 207 | left: calc(21 * var(--height-size-box)); 208 | background-color: rgba(20%, 0%, 80%, 0.7); 209 | } 210 | .size-box.box-23 { 211 | left: calc(22 * var(--height-size-box)); 212 | background-color: rgba(40%, 0%, 60%, 0.7); 213 | } 214 | .size-box.box-24 { 215 | left: calc(23 * var(--height-size-box)); 216 | background-color: rgba(60%, 0%, 40%, 0.7); 217 | } 218 | /* Snippets explain a CSS property, HTML element, 219 | or a single concept. */ 220 | .snippet { 221 | vertical-align: top; 222 | margin: 1vmin; 223 | background-color: var(--bg-color); 224 | border-radius: 6px; 225 | overflow: hidden; 226 | box-sizing: border-box; 227 | } 228 | 229 | @media (min-width: 800px) { 230 | .snippet { 231 | margin: 8px; 232 | } 233 | } 234 | 235 | .container { 236 | margin: 0; 237 | background-color: var(--bg-color-light); 238 | border: var(--border-container); 239 | border-top: none; 240 | border-top-left-radius: 0; 241 | border-top-right-radius: 0; 242 | } 243 | 244 | h1, 245 | h2, 246 | h3, 247 | h4, 248 | h5, 249 | h6 { 250 | margin: 0; 251 | padding: 6px 12px; 252 | } 253 | 254 | .snippet > h2 { 255 | background-color: var(--bg-color-header); 256 | color: var(--font-color-light); 257 | font-size: 1em; 258 | font-weight: normal; 259 | } 260 | 261 | section > h1 { 262 | grid-column: 1/-1; 263 | } 264 | 265 | section > h2 { 266 | border-radius: 8px; 267 | border: var(--border-header); 268 | color: var(--font-color-dark); 269 | display: block; 270 | font-size: 1.4em; 271 | font-weight: normal; 272 | grid-column: 1/-1; 273 | margin-top: 1em; 274 | padding: 0.5em 0.75em; 275 | } 276 | 277 | @media (min-width: 900px) { 278 | section > h2 { 279 | font-size: 1.5em; 280 | } 281 | } 282 | 283 | section > h3, 284 | .snippet > h3, 285 | .callout > h3, 286 | .container > h3 { 287 | font-size: 0.9em; 288 | font-weight: normal; 289 | color: var(--font-color-medium); 290 | background-color: initial; 291 | } 292 | 293 | section > h3 { 294 | grid-column: 1/-1; 295 | } 296 | 297 | code, 298 | .code, 299 | span.code { 300 | font-family: var(--font-family-code); 301 | white-space: pre; 302 | } 303 | 304 | code, 305 | span.code { 306 | color: var(--font-color-dark); 307 | } 308 | 309 | code { 310 | display: block; 311 | font-size: 0.85em; 312 | } 313 | 314 | .callout { 315 | display: flex; 316 | flex-direction: column; 317 | align-items: left; 318 | margin: 16px 24px; 319 | } 320 | 321 | @media (min-width: 600px) { 322 | .callout { 323 | align-items: center; 324 | margin: 16px 0; 325 | } 326 | } 327 | 328 | #css-positioning-fixed { 329 | border: 4px double black; 330 | } 331 | 332 | .codeblock { 333 | padding: 16px 24px; 334 | overflow: scroll; 335 | } 336 | 337 | .codeblock.ex-header { 338 | margin: 8px; 339 | padding: 0; 340 | } 341 | 342 | .ex-header h1 { 343 | font-size: 2em; 344 | } 345 | 346 | .codeblock > hr { 347 | border-top: var(--border-subtle); 348 | } 349 | 350 | /* Formatting code in headers. Default header padding 351 | makes code look too loose. */ 352 | .code.top { 353 | padding-bottom: 0; 354 | } 355 | 356 | .code.mid { 357 | padding-top: 0; 358 | padding-bottom: 0; 359 | } 360 | 361 | .code.bot { 362 | padding-top: 0; 363 | } 364 | 365 | code.subtle { 366 | color: var(--font-color-medium); 367 | font-size: 0.5em; 368 | padding: 4px; 369 | } 370 | 371 | .tooltip { 372 | background-color: transparent; 373 | border: 1px solid transparent; 374 | border-radius: 8px; 375 | color: transparent; 376 | font-size: 0.7em; 377 | position: absolute; 378 | transition: 0.5s; 379 | padding: 0.5em 1em; 380 | margin-top: 0; 381 | z-index: 1000; 382 | } 383 | 384 | .ex-tooltip:hover > .tooltip, 385 | .codeblock:hover > .tooltip { 386 | background-color: yellow; 387 | border-color: black; 388 | color: black; 389 | font-size: 1.2em; 390 | } 391 | 392 | .ex-transition-translate .box { 393 | transition: 1s all; 394 | } 395 | 396 | .ex-transition-translate:hover .box { 397 | transform: translateX(200px); 398 | } 399 | 400 | section { 401 | padding: 0 0; 402 | margin: 0 0.5em; 403 | } 404 | 405 | @media (min-width: 600px) { 406 | section { 407 | margin: 0 1em; 408 | } 409 | } 410 | 411 | .box, 412 | .bar, 413 | .content-box { 414 | background-color: var(--bg-color-box); 415 | color: var(--font-color-light); 416 | } 417 | 418 | .box.transform { 419 | line-height: 1.5em; 420 | } 421 | 422 | .box, 423 | .bar { 424 | font-family: var(--font-family-code); 425 | display: inline-block; 426 | border-radius: 4px; 427 | min-height: 1.5em; 428 | text-align: center; 429 | vertical-align: middle; 430 | } 431 | 432 | .box.to-clear { 433 | padding: 8px; 434 | } 435 | 436 | .bar.vertical { 437 | min-height: 0; 438 | min-width: 1.5em; 439 | } 440 | 441 | .box { 442 | min-width: 1.5em; 443 | margin: 4px; 444 | } 445 | 446 | .box.absolute { 447 | position: absolute; 448 | left: auto; 449 | margin: 0; 450 | } 451 | 452 | .box.placeholder { 453 | background-color: var(--bg-color-light); 454 | color: var(--font-color-medium); 455 | } 456 | 457 | .box.invisible { 458 | visibility: hidden; 459 | margin: 16px; 460 | } 461 | 462 | .box.bigger { 463 | font-size: 1.5em; 464 | } 465 | 466 | .box.biggest { 467 | font-size: 2em; 468 | } 469 | 470 | .box.flatter { 471 | min-height: 8px; 472 | margin: 2px; 473 | } 474 | 475 | .box.wider { 476 | min-width: 3em; 477 | } 478 | 479 | .fullwidth { 480 | width: 100%; 481 | } 482 | 483 | .box.nomargin { 484 | margin: 0; 485 | } 486 | 487 | .box.square { 488 | border-radius: 0; 489 | } 490 | 491 | /* Styles for creating figures related to the Box model */ 492 | 493 | .margin-box, 494 | .border-box, 495 | .padding-box, 496 | .content-box { 497 | padding: 1em; 498 | padding-top: 0em; 499 | } 500 | 501 | .ex-box-sizing { 502 | max-width: 11em; 503 | } 504 | 505 | .border-box { 506 | background-color: lightgrey; 507 | } 508 | 509 | .ex-margin { 510 | display: inline-block; 511 | border: var(--border-subtle); 512 | } 513 | 514 | .flex-row { 515 | display: flex; 516 | justify-content: center; 517 | align-items: center; 518 | } 519 | 520 | .flex-column { 521 | display: flex; 522 | align-items: center; 523 | flex-direction: column; 524 | } 525 | 526 | .ex-padding { 527 | border: var(--border-subtle); 528 | margin: 0; 529 | position: relative; 530 | border-radius: 0; 531 | } 532 | 533 | .ex-padding, 534 | .padding-box { 535 | background-color: hsl(120, 20%, 75%); 536 | } 537 | 538 | .padding-color { 539 | margin: 0; 540 | } 541 | 542 | .content-box { 543 | padding: 0.5em; 544 | text-indent: 0; 545 | } 546 | 547 | .margin-box, 548 | .ex-margin { 549 | background-color: hsla(50, 100%, 50%, 0.2); 550 | } 551 | 552 | .margin-box { 553 | text-indent: -0.75em; 554 | } 555 | 556 | .inline { 557 | display: inline; 558 | padding: 0; 559 | margin: 0; 560 | } 561 | 562 | .block { 563 | display: block; 564 | } 565 | 566 | .none { 567 | display: none; 568 | } 569 | 570 | .inline-block { 571 | display: inline-block; 572 | padding: 0; 573 | margin: 0; 574 | } 575 | 576 | .ex-positioned { 577 | position: relative; 578 | border: 4px double black; 579 | border-radius: 4px; 580 | } 581 | 582 | .flex { 583 | border: var(--border-flex); 584 | border-radius: 4px; 585 | display: flex; 586 | --taller-height: 5em; 587 | } 588 | 589 | .flex.inline { 590 | display: inline-flex; 591 | vertical-align: middle; 592 | } 593 | 594 | .flex.ex-wrap { 595 | width: 10em; 596 | } 597 | 598 | .flex.ex-align-items { 599 | height: var(--taller-height); 600 | } 601 | 602 | .flex.ex-align-content { 603 | height: var(--taller-height); 604 | flex-wrap: wrap; 605 | } 606 | 607 | .flex.ex-align-self { 608 | height: var(--taller-height); 609 | } 610 | 611 | .flex.ex-flow { 612 | border: none; 613 | } 614 | 615 | .ex-css-height { 616 | display: flex; 617 | align-items: flex-end; 618 | } 619 | 620 | div.line:after, 621 | div.line-short:after { 622 | position: absolute; 623 | content: ""; 624 | display: inline-block; 625 | border-top: var(--border-baseline); 626 | width: 7em; 627 | margin-left: 8px; 628 | } 629 | 630 | div.line-short:after { 631 | width: 3.5em; 632 | /* margin-left: 12px; */ 633 | } 634 | 635 | div.columns { 636 | display: flex; 637 | flex-wrap: wrap; 638 | flex-direction: row; 639 | justify-content: flex-start; 640 | } 641 | 642 | div.column { 643 | display: flex; 644 | flex-direction: column; 645 | } 646 | 647 | /* For the flexbox 'order' property snippet. */ 648 | .first, 649 | .second { 650 | order: 1; 651 | } 652 | 653 | .font-example { 654 | display: inline-block; 655 | font-size: 32px; 656 | } 657 | 658 | a:link, 659 | a:visited { 660 | color: darkblue; 661 | text-decoration: none; 662 | } 663 | 664 | .nudge-top { 665 | padding-top: 10px; 666 | } 667 | 668 | .float-left { 669 | float: left; 670 | } 671 | 672 | .float-right { 673 | float: right; 674 | } 675 | 676 | .ex-overflow-box { 677 | display: inline-block; 678 | border: var(--border-subtle); 679 | width: 250px; 680 | height: 80px; 681 | } 682 | 683 | .ex-overflow-box.hidden { 684 | overflow: hidden; 685 | } 686 | 687 | .ex-overflow-box.scroll { 688 | overflow: scroll; 689 | } 690 | 691 | .ex-overflow-box.visible { 692 | overflow: visible; 693 | } 694 | 695 | .text-example { 696 | border-bottom: var(--border-separator); 697 | } 698 | 699 | .text-example.align { 700 | max-width: 8em; 701 | } 702 | 703 | .ex-border-width { 704 | border-color: black; 705 | border-style: solid; 706 | } 707 | 708 | .ex-float, 709 | .ex-clear { 710 | width: 14em; 711 | border: var(--border-subtle); 712 | padding: 4px; 713 | display: inline-block; 714 | margin: 4px; 715 | } 716 | 717 | .ex-clear-row { 718 | display: flex; 719 | align-items: stretch; 720 | } 721 | 722 | .ex-border.dark, 723 | .ex-border.light { 724 | width: 1.5em; 725 | height: 1.5em; 726 | border-radius: 4px; 727 | background-color: white; 728 | border: 3px solid black; 729 | } 730 | 731 | .ex-border.light { 732 | background-color: transparent; 733 | } 734 | 735 | .ex-border-side { 736 | border: 3px solid black; 737 | border-radius: 0; 738 | } 739 | 740 | .ex-border-side.single { 741 | border-width: 0; 742 | } 743 | 744 | .ex-fixed { 745 | position: fixed; 746 | background-color: var(--bg-color-semitransparent); 747 | min-width: 30%; 748 | min-height: 30%; 749 | display: flex; 750 | justify-content: center; 751 | align-items: center; 752 | } 753 | 754 | .ex-fixed > code { 755 | color: var(--font-color-light); 756 | font-size: 1em; 757 | } 758 | 759 | .table { 760 | display: table; 761 | } 762 | 763 | table { 764 | border-collapse: collapse; 765 | border-spacing: 0; 766 | } 767 | 768 | .ex-table, 769 | .ex-element, 770 | .ex-form, 771 | .ex-list, 772 | .ex-keyframe { 773 | border-bottom: var(--border-separator); 774 | padding-left: 8px; 775 | padding-bottom: 8px; 776 | } 777 | 778 | .ex-full-table { 779 | background-color: initial; 780 | } 781 | 782 | .ex-full-table td { 783 | border: var(--border-table); 784 | } 785 | 786 | .ex-full-table th { 787 | width: 40%; 788 | } 789 | 790 | .row { 791 | display: table-row; 792 | } 793 | 794 | .center { 795 | text-align: center; 796 | } 797 | 798 | td { 799 | padding: 8px; 800 | height: 1em; 801 | width: 1em; 802 | text-align: center; 803 | } 804 | 805 | .row > .codeblock { 806 | display: table-cell; 807 | } 808 | 809 | table.border, 810 | tr.border, 811 | td.border { 812 | border: var(--border-table); 813 | } 814 | 815 | table.column-borders td + td { 816 | border-left: var(--border-table); 817 | } 818 | 819 | table.row-borders tr + tr { 820 | border-top: var(--border-table); 821 | } 822 | 823 | table.all-borders td { 824 | border: var(--border-table); 825 | } 826 | 827 | .ex-caption { 828 | /* padding: 12px 36px; */ 829 | padding: 8px; 830 | border-bottom: var(--border-separator); 831 | } 832 | 833 | .highlight-border { 834 | border: 2px solid red; 835 | } 836 | 837 | .highlight { 838 | background-color: var(--bg-color-highlight); 839 | color: var(--font-color-light); 840 | } 841 | 842 | .ex-vertical-align { 843 | display: flex; 844 | } 845 | 846 | .ex-vertical-align-cell { 847 | border: var(--border-table); 848 | width: 4em; 849 | height: 5em; 850 | text-align: center; 851 | } 852 | 853 | .cell > .codeblock { 854 | padding: 0 0 8px 0; 855 | } 856 | 857 | .ex-vertical-align-text { 858 | display: inline-block; 859 | border-bottom: var(--border-separator); 860 | white-space: nowrap; 861 | } 862 | 863 | .ex-align-box { 864 | display: inline-flex; 865 | align-items: center; 866 | min-width: 3em; 867 | min-height: 3em; 868 | background-color: var(--bg-color-box); 869 | border-radius: 4px; 870 | margin: 4px; 871 | justify-content: center; 872 | text-align: center; 873 | color: var(--font-color-light); 874 | } 875 | 876 | .ex-zindex { 877 | position: relative; 878 | height: 6em; 879 | border-bottom: var(--border-separator); 880 | } 881 | 882 | .box-zindex { 883 | align-items: flex-end; 884 | background-color: var(--bg-color-box); 885 | bottom: 30px; 886 | color: var(--font-color-light); 887 | display: flex; 888 | height: 3em; 889 | justify-content: flex-end; 890 | left: 30px; 891 | padding: 4px; 892 | position: relative; 893 | width: 3em; 894 | } 895 | 896 | .box-zindex.placeholder { 897 | align-items: flex-start; 898 | font-size: 1em; 899 | left: 0; 900 | justify-content: flex-start; 901 | top: 0; 902 | } 903 | 904 | .stack { 905 | grid-column: 1/-1; 906 | display: inline-flex; 907 | flex-direction: column; 908 | align-items: stretch; 909 | } 910 | 911 | .ex-full-table-elements { 912 | display: flex; 913 | flex-direction: column; 914 | } 915 | 916 | @media (min-width: 500px) { 917 | .ex-full-table-elements { 918 | flex-direction: row; 919 | } 920 | } 921 | 922 | .ex-full-table-elements > code { 923 | padding-right: 36px; 924 | } 925 | 926 | .ex-full-table-elements th { 927 | border: 2px solid black; 928 | } 929 | 930 | .ex-css-element > code { 931 | font-family: var(--font-family-code); 932 | font-weight: bold; 933 | font-size: 1em; 934 | } 935 | 936 | .ex-css-element { 937 | border-bottom: var(--border-separator); 938 | padding: 0 0 8px 8px; 939 | } 940 | 941 | .ex-css { 942 | display: block; 943 | flex-wrap: wrap; 944 | max-width: 500px; 945 | justify-content: space-between; 946 | } 947 | 948 | .ps-link:link { 949 | background-color: var(--bg-color-link); 950 | } 951 | 952 | .ps-link:visited { 953 | background-color: var(--bg-color-visited); 954 | } 955 | 956 | .ps-link:hover { 957 | background-color: var(--bg-color-hover); 958 | } 959 | 960 | .ps-link:active { 961 | background-color: var(--bg-color-active); 962 | } 963 | 964 | .ps-active:active { 965 | background-color: var(--bg-color-active); 966 | } 967 | 968 | .ps-hover:hover { 969 | background-color: var(--bg-color-hover); 970 | } 971 | 972 | .ps-target, 973 | .ps-active, 974 | .ps-hover, 975 | .ps-plain { 976 | background-color: var(--bg-color-visited); 977 | } 978 | 979 | .ps-target:target { 980 | background-color: var(--bg-color-active); 981 | } 982 | 983 | .ex-pseudo { 984 | border-bottom: var(--border-separator); 985 | padding-bottom: 8px; 986 | } 987 | 988 | .ex-pseudo > a { 989 | display: block; 990 | padding: 8px; 991 | } 992 | 993 | .ps-after::after { 994 | content: " The added content."; 995 | color: var(--font-color-added); 996 | } 997 | 998 | .ps-before::before { 999 | content: " The added content."; 1000 | color: var(--font-color-added); 1001 | } 1002 | 1003 | .underline { 1004 | position: relative; 1005 | } 1006 | 1007 | .underline::after { 1008 | position: absolute; 1009 | content: ""; 1010 | display: block; 1011 | border-top: var(--border-subtle); 1012 | width: 70%; 1013 | } 1014 | 1015 | .overline { 1016 | position: relative; 1017 | } 1018 | 1019 | .overline::before { 1020 | position: absolute; 1021 | content: ""; 1022 | display: block; 1023 | border-bottom: var(--border-subtle); 1024 | width: 70%; 1025 | } 1026 | 1027 | .transition .box { 1028 | margin-left: 0%; 1029 | transition: 1s; 1030 | } 1031 | 1032 | .transition:hover .box { 1033 | margin-left: 80%; 1034 | } 1035 | 1036 | .ex-transition.property .box { 1037 | transition: 2s; 1038 | color: var(--font-color-dark); 1039 | } 1040 | 1041 | .ex-transition.property { 1042 | transition: 2s; 1043 | --bg-transition: red; 1044 | --font-color-transition: white; 1045 | --margin-transition: 80%; 1046 | } 1047 | 1048 | .ex-transition:hover.property.all .box { 1049 | background-color: var(--bg-transition); 1050 | color: var(--font-color-transition); 1051 | margin-left: var(--margin-transition); 1052 | } 1053 | 1054 | .ex-transition:hover.property.color .box { 1055 | color: var(--font-color-transition); 1056 | } 1057 | 1058 | .ex-transition:hover.property.margin .box { 1059 | margin-left: var(--margin-transition); 1060 | } 1061 | 1062 | .ex-transition:hover.property.background .box { 1063 | background-color: var(--bg-transition); 1064 | } 1065 | 1066 | .ex-transition-timing-function, 1067 | .ex-animation-timing-function { 1068 | display: grid; 1069 | grid-template-columns: 1fr 1fr; 1070 | grid-template-rows: repeat(5, 1fr); 1071 | grid-auto-flow: column; 1072 | } 1073 | 1074 | .animation:hover .box { 1075 | animation: slideright 1s infinite linear; 1076 | } 1077 | 1078 | .animation.alternate .box { 1079 | animation-direction: alternate; 1080 | } 1081 | 1082 | .animation.ex-animation-fill-mode:hover .box { 1083 | animation: slideright 1s 1 1s, colorshift 1s 1 1s; 1084 | } 1085 | 1086 | .animation:hover .fillmode-delay { 1087 | animation: showblue 1s step-start; 1088 | } 1089 | 1090 | .animation:hover .fillmode-animate { 1091 | animation: showred 1s step-start 1s; 1092 | } 1093 | 1094 | .animation:hover .fillmode-end { 1095 | animation: showblack 0.1s step-start 2s forwards; 1096 | } 1097 | 1098 | .animation .fillmode-delay, 1099 | .animation .fillmode-animate, 1100 | .animation .fillmode-end { 1101 | color: transparent; 1102 | } 1103 | 1104 | .animation:hover .fillmode-initial { 1105 | color: transparent; 1106 | } 1107 | 1108 | .animation:hover .box.backgroundcolor { 1109 | animation: showbackground 2s forwards; 1110 | } 1111 | 1112 | .animation:hover .box.size { 1113 | animation: growsize 2s forwards; 1114 | } 1115 | 1116 | @keyframes slideright { 1117 | from { 1118 | margin-left: 0%; 1119 | } 1120 | to { 1121 | margin-left: 80%; 1122 | } 1123 | } 1124 | 1125 | @keyframes colorshift { 1126 | from { 1127 | color: blue; 1128 | } 1129 | to { 1130 | color: red; 1131 | } 1132 | } 1133 | 1134 | @keyframes showblue { 1135 | to { 1136 | color: blue; 1137 | } 1138 | } 1139 | @keyframes showred { 1140 | to { 1141 | color: red; 1142 | } 1143 | } 1144 | 1145 | @keyframes showblack { 1146 | to { 1147 | color: black; 1148 | } 1149 | } 1150 | 1151 | @keyframes showbackground { 1152 | from { 1153 | background-color: blue; 1154 | } 1155 | to { 1156 | background-color: red; 1157 | } 1158 | } 1159 | 1160 | @keyframes growsize { 1161 | from { 1162 | height: 1em; 1163 | width: 1em; 1164 | } 1165 | to { 1166 | height: 4em; 1167 | width: 4em; 1168 | } 1169 | } 1170 | 1171 | /* This adds space before the target of a link, to put the target below the navbar. */ 1172 | /* XXX Broken by grid layout? */ 1173 | :target:before { 1174 | content: ""; 1175 | display: block; 1176 | height: 60px; 1177 | margin: -60px 0 0; 1178 | } 1179 | 1180 | /* Example cursor animation */ 1181 | .animation:hover .cursor { 1182 | animation: cursor 0.8s infinite step-end; 1183 | } 1184 | 1185 | .cursor { 1186 | height: 80px; 1187 | border-left: 8px solid black; 1188 | } 1189 | 1190 | @keyframes cursor { 1191 | 50% { 1192 | border-color: transparent; 1193 | } 1194 | } 1195 | 1196 | .animation:hover .animated { 1197 | animation-iteration-count: infinite; 1198 | animation-duration: 1.5s; 1199 | } 1200 | 1201 | .ex-transform { 1202 | display: inline-block; 1203 | position: relative; 1204 | perspective: 100px; 1205 | } 1206 | 1207 | .ex-transform.lr-border { 1208 | border: var(--border-guides); 1209 | border-width: 0 1px; 1210 | border-radius: 0; 1211 | } 1212 | 1213 | .ex-transform.tb-border { 1214 | border: var(--border-guides); 1215 | border-width: 1px 0; 1216 | border-radius: 0; 1217 | } 1218 | 1219 | .ex-translate { 1220 | width: 60px; 1221 | height: 60px; 1222 | border: var(--border-bounds); 1223 | perspective: 60px; 1224 | perspective-origin: top left; 1225 | } 1226 | 1227 | .ex-perspective { 1228 | height: 80px; 1229 | width: 50px; 1230 | position: relative; 1231 | } 1232 | 1233 | .ex-perspective { 1234 | margin: 10px 0 -25px 10px; 1235 | } 1236 | 1237 | .ex-perspective.right-bottom { 1238 | perspective-origin: 300% 200%; 1239 | } 1240 | 1241 | .ex-perspective.left-bottom { 1242 | perspective-origin: -300% 200%; 1243 | } 1244 | 1245 | .ex-perspective.center { 1246 | perspective-origin: 50% 50%; 1247 | margin: 0 0 -30px 0; 1248 | } 1249 | 1250 | .ex-perspective.right-top { 1251 | perspective-origin: 300% -200%; 1252 | } 1253 | 1254 | .ex-perspective.left-top { 1255 | perspective-origin: -300% -200%; 1256 | /* margin: 20px; */ 1257 | /* margin-bottom: 0; */ 1258 | } 1259 | 1260 | .cube { 1261 | perspective: 400px; 1262 | transform-style: preserve-3d; 1263 | backface-visibility: visible; 1264 | } 1265 | 1266 | .face { 1267 | position: absolute; 1268 | width: 40px; 1269 | height: 40px; 1270 | color: white; 1271 | line-height: 40px; 1272 | font-size: 2em; 1273 | text-align: center; 1274 | } 1275 | 1276 | .face.front { 1277 | transform: translateZ(20px); 1278 | background-color: rgba(30%, 30%, 30%, 0.7); 1279 | } 1280 | 1281 | .face.top { 1282 | transform: rotateX(90deg) translateZ(20px); 1283 | background-color: rgba(0%, 100%, 0%, 0.7); 1284 | } 1285 | 1286 | .face.right { 1287 | transform: rotateY(90deg) translateZ(20px); 1288 | background-color: rgba(0%, 0%, 100%, 0.7); 1289 | } 1290 | 1291 | .face.left { 1292 | transform: rotateY(-90deg) translateZ(20px); 1293 | background-color: rgba(100%, 0%, 0%, 0.7); 1294 | } 1295 | 1296 | .face.bottom { 1297 | transform: rotateX(-90deg) translateZ(20px); 1298 | background-color: rgba(100%, 0%, 100%, 0.7); 1299 | } 1300 | 1301 | .face.back { 1302 | transform: rotateY(180deg) translateZ(20px); 1303 | background-color: rgba(25%, 50%, 75%, 0.7); 1304 | } 1305 | 1306 | table.transform-origin { 1307 | margin: 16px 0 16px 16px; 1308 | } 1309 | 1310 | .perspective { 1311 | display: grid; 1312 | grid-template-columns: repeat(2, 1fr); 1313 | } 1314 | 1315 | .perspective > .codeblock { 1316 | overflow: hidden; 1317 | padding: 8px 16px; 1318 | display: flex; 1319 | align-items: center; 1320 | flex-direction: column; 1321 | } 1322 | 1323 | .ex-transform-origin { 1324 | border: var(--border-bounds); 1325 | display: inline-block; 1326 | perspective: 100px; 1327 | margin-bottom: 10px; 1328 | } 1329 | 1330 | .transform-origin .codeblock { 1331 | padding: 16px 16px 0 12px; 1332 | } 1333 | 1334 | table.transform-origin > caption { 1335 | margin-left: 15%; 1336 | } 1337 | 1338 | .door { 1339 | height: 40px; 1340 | width: 40px; 1341 | background-color: var(--bg-color-box); 1342 | color: var(--font-color-light); 1343 | line-height: 40px; 1344 | text-align: center; 1345 | font-size: 2em; 1346 | } 1347 | 1348 | .door.rotate-y { 1349 | transform: rotateY(60deg); 1350 | } 1351 | .door.rotate-y2 { 1352 | transform: rotateY(-60deg); 1353 | } 1354 | .door.rotate-x { 1355 | transform: rotateX(60deg); 1356 | } 1357 | .door.rotate-x2 { 1358 | transform: rotateX(-60deg); 1359 | } 1360 | .door.rotate-z { 1361 | transform: rotateZ(45deg); 1362 | } 1363 | 1364 | .transform-origin td { 1365 | text-align: left; 1366 | } 1367 | 1368 | /* Card transition */ 1369 | .ex-card:hover .card { 1370 | transform: rotateY(180deg) translateX(100%); 1371 | } 1372 | 1373 | .ex-card { 1374 | perspective: 300px; 1375 | } 1376 | 1377 | .card { 1378 | transition: 0.7s; 1379 | transform-style: preserve-3d; 1380 | transform-origin: right; 1381 | position: relative; 1382 | } 1383 | 1384 | .card-front, 1385 | .card-back { 1386 | backface-visibility: hidden; 1387 | position: absolute; 1388 | } 1389 | 1390 | .card-back { 1391 | transform: rotateY(180deg) translateZ(1px); 1392 | } 1393 | 1394 | /* Card styling */ 1395 | .card { 1396 | width: 100px; 1397 | height: 100px; 1398 | line-height: 100px; 1399 | color: var(--font-color-light); 1400 | } 1401 | 1402 | .card-front, 1403 | .card-back { 1404 | width: 100%; 1405 | height: 100%; 1406 | text-align: center; 1407 | font-size: 2em; 1408 | } 1409 | 1410 | .card-front { 1411 | background-color: var(--bg-color-box); 1412 | } 1413 | 1414 | .card-back { 1415 | background-color: purple; 1416 | } 1417 | 1418 | #transform-rotate .codeblock { 1419 | padding: 8px; 1420 | } 1421 | 1422 | iframe { 1423 | background-color: var(--bg-color-light); 1424 | margin: 20px; 1425 | margin-top: 0; 1426 | } 1427 | 1428 | .ex-grid { 1429 | display: grid; 1430 | grid-gap: 4px; 1431 | } 1432 | 1433 | .ex-grid.inline { 1434 | display: inline-grid; 1435 | } 1436 | 1437 | .ex-grid.template-rows { 1438 | grid-template-columns: 1fr; 1439 | } 1440 | 1441 | .grid-template-rows-container { 1442 | display: grid; 1443 | grid-template-columns: auto auto; 1444 | align-items: flex-end; 1445 | } 1446 | 1447 | .grid-column-container, 1448 | .grid-row-container { 1449 | display: grid; 1450 | grid-template-columns: 1fr 1fr 1fr; 1451 | } 1452 | 1453 | .ex-grid > .box { 1454 | padding: 0; 1455 | margin: 0; 1456 | border-radius: 0; 1457 | } 1458 | 1459 | .ex-box-shadow { 1460 | margin-bottom: 20px; 1461 | } 1462 | 1463 | .ex-grid.grid-column { 1464 | display: inline-grid; 1465 | grid-template-columns: 1fr 1fr 1fr; 1466 | } 1467 | 1468 | .ex-grid.grid-row { 1469 | display: inline-grid; 1470 | grid-template-rows: 1fr 1fr 1fr; 1471 | grid-template-columns: 1fr 1fr; 1472 | } 1473 | 1474 | .ex-grid.grid-area { 1475 | display: inline-grid; 1476 | grid-template-rows: 1fr 1fr 1fr; 1477 | grid-template-columns: 1fr 1fr 1fr; 1478 | } 1479 | 1480 | .ex-grid.grid-template-area { 1481 | display: grid; 1482 | } 1483 | 1484 | .grid-area-container { 1485 | display: grid; 1486 | grid-template-columns: repeat(2, auto); 1487 | } 1488 | 1489 | .ex-grid.grid-auto-flow { 1490 | display: inline-grid; 1491 | grid-template-columns: repeat(3, 1fr); 1492 | grid-template-rows: repeat(3, 1fr); 1493 | } 1494 | 1495 | .grid-auto-flow-container { 1496 | display: grid; 1497 | grid-template-columns: auto auto auto; 1498 | align-items: flex-end; 1499 | grid-gap: 8px; 1500 | } 1501 | 1502 | .grid-heading { 1503 | padding-left: 20px; 1504 | padding-top: 20px; 1505 | } 1506 | 1507 | .ex-grid.grid-gap { 1508 | display: inline-grid; 1509 | grid-template-columns: 1fr 1fr; 1510 | } 1511 | 1512 | .grid-gap-container { 1513 | display: grid; 1514 | grid-template-columns: repeat(3, 1fr); 1515 | } 1516 | 1517 | /* Grids for laying out the cheat sheet itself */ 1518 | 1519 | .grid { 1520 | display: grid; 1521 | } 1522 | 1523 | .grid.col-5 { 1524 | grid-template-columns: 1fr; 1525 | } 1526 | .grid.col-4 { 1527 | grid-template-columns: 1fr; 1528 | } 1529 | .grid.col-3 { 1530 | grid-template-columns: 1fr; 1531 | } 1532 | .grid.col-2 { 1533 | grid-template-columns: 1fr; 1534 | } 1535 | 1536 | .grid.center { 1537 | align-items: center; 1538 | } 1539 | 1540 | @media (min-width: 400px) { 1541 | .grid.col-5 { 1542 | grid-template-columns: repeat(2, 1fr); 1543 | } 1544 | .grid.col-4 { 1545 | grid-template-columns: repeat(2, 1fr); 1546 | } 1547 | .grid.col-3 { 1548 | grid-template-columns: repeat(1, 1fr); 1549 | } 1550 | .grid.col-2 { 1551 | grid-template-columns: repeat(1, 1fr); 1552 | } 1553 | } 1554 | 1555 | @media (min-width: 500px) { 1556 | .grid.col-5 { 1557 | grid-template-columns: repeat(2, 1fr); 1558 | } 1559 | .grid.col-4 { 1560 | grid-template-columns: repeat(2, 1fr); 1561 | } 1562 | .grid.col-3 { 1563 | grid-template-columns: repeat(2, 1fr); 1564 | } 1565 | .grid.col-2 { 1566 | grid-template-columns: repeat(1, 1fr); 1567 | } 1568 | } 1569 | 1570 | @media (min-width: 600px) { 1571 | .grid.col-5 { 1572 | grid-template-columns: repeat(4, 1fr); 1573 | } 1574 | .grid.col-4 { 1575 | grid-template-columns: repeat(3, 1fr); 1576 | } 1577 | .grid.col-3 { 1578 | grid-template-columns: repeat(3, 1fr); 1579 | } 1580 | .grid.col-2 { 1581 | grid-template-columns: repeat(2, 1fr); 1582 | } 1583 | } 1584 | 1585 | @media (min-width: 1200px) { 1586 | .grid.col-5 { 1587 | grid-template-columns: repeat(5, 1fr); 1588 | } 1589 | .grid.col-4 { 1590 | grid-template-columns: repeat(4, 1fr); 1591 | } 1592 | .grid.col-3 { 1593 | grid-template-columns: repeat(3, 1fr); 1594 | } 1595 | .grid.col-2 { 1596 | grid-template-columns: repeat(2, 1fr); 1597 | } 1598 | } 1599 | 1600 | section { 1601 | display: grid; 1602 | grid-column: 1/-1; /* Sections are nested. */ 1603 | } 1604 | 1605 | /* We choose sizes of 100px large column format because it has many divisors: 1606 | 1607 | Similarly the other breakpoints have the most divisors of smaller numbers: 1608 | 4 -- 1,2,4 1609 | 6 -- 1,2,3,6 1610 | 12 -- 1,2,3,4,6,12 1611 | 18 -- 1,2,3,6,9,18 1612 | 24 -- 1,2,3,4,6,8,12,24 1613 | */ 1614 | @media (max-width: 400px) { 1615 | section { 1616 | grid-template-columns: repeat(1, 1fr); 1617 | } 1618 | } 1619 | @media (min-width: 400px) { 1620 | section { 1621 | grid-template-columns: repeat(4, 1fr); 1622 | } 1623 | } 1624 | @media (min-width: 600px) { 1625 | section { 1626 | grid-template-columns: repeat(6, 1fr); 1627 | } 1628 | } 1629 | @media (min-width: 1200px) { 1630 | section { 1631 | grid-template-columns: repeat(12, 1fr); 1632 | } 1633 | } 1634 | @media (min-width: 1800px) { 1635 | section { 1636 | grid-template-columns: repeat(18, 1fr); 1637 | } 1638 | } 1639 | @media (min-width: 2400px) { 1640 | section { 1641 | grid-template-columns: repeat(24, 1fr); 1642 | } 1643 | } 1644 | 1645 | /* Grid layout - columns */ 1646 | @media (max-width: 400px) { 1647 | .snippet { 1648 | grid-column: span 1; 1649 | } 1650 | .span-1 { 1651 | grid-column: span 1; 1652 | } 1653 | .span-2 { 1654 | grid-column: span 1; 1655 | } 1656 | .span-3 { 1657 | grid-column: span 1; 1658 | } 1659 | .span-4 { 1660 | grid-column: span 1; 1661 | } 1662 | .span-5 { 1663 | grid-column: span 1; 1664 | } 1665 | .span-6 { 1666 | grid-column: span 1; 1667 | } 1668 | .span-7 { 1669 | grid-column: span 1; 1670 | } 1671 | .span-8 { 1672 | grid-column: span 1; 1673 | } 1674 | .span-9 { 1675 | grid-column: span 1; 1676 | } 1677 | .span-10 { 1678 | grid-column: span 1; 1679 | } 1680 | .span-11 { 1681 | grid-column: span 1; 1682 | } 1683 | .span-12 { 1684 | grid-column: span 1; 1685 | } 1686 | } 1687 | 1688 | @media (min-width: 400px) { 1689 | .snippet { 1690 | grid-column: span 2; 1691 | } 1692 | .span-1 { 1693 | grid-column: span 1; 1694 | } 1695 | .span-2 { 1696 | grid-column: span 2; 1697 | } 1698 | .span-3 { 1699 | grid-column: span 3; 1700 | } 1701 | .span-4 { 1702 | grid-column: span 4; 1703 | } 1704 | .span-5 { 1705 | grid-column: span 4; 1706 | } 1707 | .span-6 { 1708 | grid-column: span 4; 1709 | } 1710 | .span-7 { 1711 | grid-column: span 4; 1712 | } 1713 | .span-8 { 1714 | grid-column: span 4; 1715 | } 1716 | .span-9 { 1717 | grid-column: span 4; 1718 | } 1719 | .span-10 { 1720 | grid-column: span 4; 1721 | } 1722 | .span-11 { 1723 | grid-column: span 4; 1724 | } 1725 | .span-12 { 1726 | grid-column: span 4; 1727 | } 1728 | } 1729 | 1730 | @media (min-width: 600px) { 1731 | .snippet { 1732 | grid-column: span 3; 1733 | } 1734 | .span-1 { 1735 | grid-column: span 1; 1736 | } 1737 | .span-2 { 1738 | grid-column: span 2; 1739 | } 1740 | .span-3 { 1741 | grid-column: span 3; 1742 | } 1743 | .span-4 { 1744 | grid-column: span 4; 1745 | } 1746 | .span-5 { 1747 | grid-column: span 5; 1748 | } 1749 | .span-6 { 1750 | grid-column: span 6; 1751 | } 1752 | .span-7 { 1753 | grid-column: span 6; 1754 | } 1755 | .span-8 { 1756 | grid-column: span 6; 1757 | } 1758 | .span-9 { 1759 | grid-column: span 6; 1760 | } 1761 | .span-10 { 1762 | grid-column: span 6; 1763 | } 1764 | .span-11 { 1765 | grid-column: span 6; 1766 | } 1767 | .span-12 { 1768 | grid-column: span 6; 1769 | } 1770 | } 1771 | 1772 | @media (min-width: 1200px) { 1773 | .snippet { 1774 | grid-column: span 3; 1775 | } 1776 | .span-1 { 1777 | grid-column: span 1; 1778 | } 1779 | .span-2 { 1780 | grid-column: span 2; 1781 | } 1782 | .span-3 { 1783 | grid-column: span 3; 1784 | } 1785 | .span-4 { 1786 | grid-column: span 4; 1787 | } 1788 | .span-5 { 1789 | grid-column: span 5; 1790 | } 1791 | .span-6 { 1792 | grid-column: span 6; 1793 | } 1794 | .span-7 { 1795 | grid-column: span 7; 1796 | } 1797 | .span-8 { 1798 | grid-column: span 8; 1799 | } 1800 | .span-9 { 1801 | grid-column: span 9; 1802 | } 1803 | .span-10 { 1804 | grid-column: span 10; 1805 | } 1806 | .span-11 { 1807 | grid-column: span 11; 1808 | } 1809 | .span-12 { 1810 | grid-column: span 12; 1811 | } 1812 | } 1813 | 1814 | /* Grid layout - rows */ 1815 | .span-rows-1 { 1816 | grid-row: span 1; 1817 | } 1818 | .span-rows-2 { 1819 | grid-row: span 2; 1820 | } 1821 | .span-rows-3 { 1822 | grid-row: span 3; 1823 | } 1824 | .span-rows-4 { 1825 | grid-row: span 4; 1826 | } 1827 | .span-rows-5 { 1828 | grid-row: span 5; 1829 | } 1830 | .span-rows-6 { 1831 | grid-row: span 6; 1832 | } 1833 | 1834 | #css-padding, 1835 | #css-margin { 1836 | grid-column: 1/span 4; 1837 | } 1838 | 1839 | #css-width { 1840 | grid-column: 1/span 6; 1841 | } 1842 | --------------------------------------------------------------------------------