html { height: 100%; } body { display: flex; height: 100%; } #root { display: flex; flex: 1; flex-direction: row; height: 100%; } .flex-h-full { display: flex; height: 100%; } .loading{ position: absolute; width: 100%; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; z-index: -1; opacity: 0; /* アニメーション */ animation: fadeIn 0.5s linear; animation-fill-mode: both; } @keyframes fadeIn{ 0%{ opacity: 0; } 100%{ opacity: 1; } } /* ifx-react-ui のLoadingSpinnerより引用 */ .loading-item-wrapper { width: 46px; height: 46px; display: inline-block; } .loading-item { position: relative; left: 18px; top: 18px; width: 10px; height: 10px; border-radius: 5px; background-color: transparent; color: transparent; box-shadow: rgb(64, 148, 241) 0px -18px 0px 0px, rgb(64, 148, 241) 12.7279px -12.7279px 0px 0px, rgb(64, 148, 241) 18px 0px 0px 0px, rgb(64, 148, 241) 12.7279px 12.7279px 0px 0px, rgb(64, 148, 241) 0px 18px 0px 0px, rgb(64, 148, 241) -12.7279px 12.7279px 0px 0px, rgba(64, 148, 241, 0) -18px 0px 0px 0px, rgba(64, 148, 241, 0) -12.7279px -12.7279px 0px 0px; animation-duration: 1.5s; animation-timing-function: linear; animation-delay: 0s; animation-iteration-count: infinite; animation-direction: normal; animation-fill-mode: none; animation-name: animateSpinnerDefault; animation-timeline: auto; animation-range: normal; } @keyframes animateSpinnerDefault { 0%, 100% { box-shadow: 0px -18px 0 0 #4094F1, 12.72792px -12.72792px 0 0 #4094F1, 18px 0px 0 0 #4094F1, 12.72792px 12.72792px 0 0 #4094F1, 0px 18px 0 0 #4094F1, -12.72792px 12.72792px 0 0 #4094F1, -18px 0px 0 0 #4094F100, -12.72792px -12.72792px 0 0 #4094F100; } 12.5% { box-shadow: 0px -18px 0 0 #4094F100, 12.72792px -12.72792px 0 0 #4094F1, 18px 0px 0 0 #4094F1, 12.72792px 12.72792px 0 0 #4094F1, 0px 18px 0 0 #4094F1, -12.72792px 12.72792px 0 0 #4094F1, -18px 0px 0 0 #4094F1, -12.72792px -12.72792px 0 0 #4094F100; } 25% { box-shadow: 0px -18px 0 0 #4094F100, 12.72792px -12.72792px 0 0 #4094F100, 18px 0px 0 0 #4094F1, 12.72792px 12.72792px 0 0 #4094F1, 0px 18px 0 0 #4094F1, -12.72792px 12.72792px 0 0 #4094F1, -18px 0px 0 0 #4094F1, -12.72792px -12.72792px 0 0 #4094F1; } 37.5% { box-shadow: 0px -18px 0 0 #4094F1, 12.72792px -12.72792px 0 0 #4094F100, 18px 0px 0 0 #4094F100, 12.72792px 12.72792px 0 0 #4094F1, 0px 18px 0 0 #4094F1, -12.72792px 12.72792px 0 0 #4094F1, -18px 0px 0 0 #4094F1, -12.72792px -12.72792px 0 0 #4094F1; } 50% { box-shadow: 0px -18px 0 0 #4094F1, 12.72792px -12.72792px 0 0 #4094F1, 18px 0px 0 0 #4094F100, 12.72792px 12.72792px 0 0 #4094F100, 0px 18px 0 0 #4094F1, -12.72792px 12.72792px 0 0 #4094F1, -18px 0px 0 0 #4094F1, -12.72792px -12.72792px 0 0 #4094F1; } 62.5% { box-shadow: 0px -18px 0 0 #4094F1, 12.72792px -12.72792px 0 0 #4094F1, 18px 0px 0 0 #4094F1, 12.72792px 12.72792px 0 0 #4094F100, 0px 18px 0 0 #4094F100, -12.72792px 12.72792px 0 0 #4094F1, -18px 0px 0 0 #4094F1, -12.72792px -12.72792px 0 0 #4094F1; } 75% { box-shadow: 0px -18px 0 0 #4094F1, 12.72792px -12.72792px 0 0 #4094F1, 18px 0px 0 0 #4094F1, 12.72792px 12.72792px 0 0 #4094F1, 0px 18px 0 0 #4094F100, -12.72792px 12.72792px 0 0 #4094F100, -18px 0px 0 0 #4094F1, -12.72792px -12.72792px 0 0 #4094F1; } 87.5% { box-shadow: 0px -18px 0 0 #4094F1, 12.72792px -12.72792px 0 0 #4094F1, 18px 0px 0 0 #4094F1, 12.72792px 12.72792px 0 0 #4094F1, 0px 18px 0 0 #4094F1, -12.72792px 12.72792px 0 0 #4094F100, -18px 0px 0 0 #4094F100, -12.72792px -12.72792px 0 0 #4094F1; } }