spb/countryatlas
Public
TypeScript 57%
Python 38.6%
JavaScript 3.6%
CSS 0.6%
1import { t } from '@/i18n';23/** Root loading UI: a calm, low-contrast skeleton with reserved heights (no spinner, no layout jump). */4export default function Loading() {5 return (6 <div className="animate-fade py-8" aria-busy="true" aria-label={t('common.loading')}>7 <div className="h-8 w-2/3 max-w-md rounded-sm bg-surface-2" />8 <div className="mt-3 h-4 w-1/2 max-w-sm rounded-sm bg-surface-2" />9 <div className="mt-8 grid gap-6 min-[361px]:grid-cols-2 md:grid-cols-4">10 {Array.from({ length: 8 }, (_, i) => (11 <div key={i} className="border-t border-rule pt-3">12 <div className="h-3 w-24 rounded-sm bg-surface-2" />13 <div className="mt-3 h-7 w-28 rounded-sm bg-surface-2" />14 <div className="mt-2 h-3 w-20 rounded-sm bg-surface-2" />15 </div>16 ))}17 </div>18 </div>19 );20}21