51 |
Demo CSS:
52 |
53 | @font-face {
54 | font-family: "demo";
55 | src: url('fonts/icons.woff') format("woff"), url('fonts/icons.ttf') format("truetype");
56 | }
57 |
58 | @keyframes loadingStart {
59 | 0% {
60 | opacity: 0;
61 | }
62 | 100% {
63 | opacity: 1;
64 | }
65 | }
66 | @keyframes loading {
67 | 0% {
68 | transform: rotate(0deg);
69 | }
70 | 50% {
71 | transform: rotate(180deg);
72 | }
73 | 100% {
74 | transform: rotate(360deg);
75 | }
76 | }
77 |
78 | .loading {
79 | position: relative;
80 | pointer-events: none;
81 | }
82 |
83 | #css-input:checked ~ .loading .loading-overlay {
84 | position: absolute;
85 | top: 0;
86 | bottom: 0;
87 | left: 0;
88 | right: 0;
89 | -webkit-animation: loadingStart 3s 300ms linear 1 both;
90 | -moz-animation: loadingStart 3s 300ms linear 1 both;
91 | -o-animation: loadingStart 3s 300ms linear 1 both;
92 | animation: loadingStart 3s 300ms linear 1 both;
93 | background: rgba(255, 255, 255, 0.5);
94 | text-align: center;
95 | }
96 | #css-input:checked ~ .loading .loading-text {
97 | font-size: 0.875rem;
98 | line-height: 1.3125rem;
99 | text-shadow: white 0 0 1em, white 0 0 0.5em, white 0 0 0.25em;
100 | position: relative;
101 | display: block;
102 | text-transform: uppercase;
103 | font-weight: bold;
104 | }
105 | #css-input:checked ~ .loading .loading-text:after {
106 | content: "...";
107 | }
108 | #css-input:checked ~ .loading .loading-spinner {
109 | position: absolute;
110 | top: 50%;
111 | bottom: 0;
112 | left: 0;
113 | right: 0;
114 | margin: -3.9375rem auto 0;
115 | color: #1a1d1d;
116 | text-align: center;
117 | }
118 | #css-input:checked ~ .loading .loading-icon {
119 | font-size: 4.8125rem;
120 | line-height: 5.25rem;
121 | text-shadow: rgba(255, 255, 255, 0.75) 0 0 0.5em;
122 | -webkit-animation: loading 1s steps(4) infinite;
123 | -moz-animation: loading 1s steps(4) infinite;
124 | -o-animation: loading 1s steps(4) infinite;
125 | animation: loading 1s steps(4) infinite;
126 | display: block;
127 | vertical-align: middle;
128 | }
129 | #css-input:checked ~ .loading .loading-icon:before {
130 | vertical-align: middle;
131 | content: "\e000";
132 | font-family: "demo";
133 | }
134 |
135 |