!!! 5
%html{ lang: I18n.locale }
  %head
    %meta{ charset: 'utf-8' }/
    %meta{ name: 'viewport', content: 'width=device-width, initial-scale=1, viewport-fit=cover' }/

    - if cdn_host?
      %link{ rel: 'dns-prefetch', href: cdn_host }/
      %meta{ name: 'cdn-host', content: cdn_host }/

    - if storage_host?
      %link{ rel: 'dns-prefetch', href: storage_host }/

    - SiteUpload::FAVICON_SIZES.each do |size|
      %link{ rel: 'icon', sizes: "#{size}x#{size}", href: favicon_path(size.to_i) || frontend_asset_path("icons/favicon-#{size}x#{size}.png"), type: 'image/png' }/

    - SiteUpload::APPLE_ICON_SIZES.each do |size|
      %link{ rel: 'apple-touch-icon', sizes: "#{size}x#{size}", href: app_icon_path(size.to_i) || frontend_asset_path("icons/apple-touch-icon-#{size}x#{size}.png") }/

    - if use_mask_icon?
      %link{ rel: 'mask-icon', href: frontend_asset_path('images/logo-symbol-icon.svg'), color: '#6364FF' }/
    %link{ rel: 'manifest', href: manifest_path(format: :json) }/
    = theme_color_tags current_theme
    %meta{ name: 'mobile-web-app-capable', content: 'yes' }/

    %title= html_title

    = theme_style_tags current_theme
    = vite_client_tag
    = vite_react_refresh_tag
    = vite_polyfills_tag
    -# Needed for the wicg-inert polyfill. It needs to be on it's own <style> tag, with this `id`
    = vite_stylesheet_tag 'styles/entrypoints/inert.scss', media: 'all', id: 'inert-style', crossorigin: 'anonymous'
    = vite_typescript_tag 'common.ts', crossorigin: 'anonymous'

    = vite_preload_file_tag "mastodon/locales/#{I18n.locale}.json"
    = csrf_meta_tags unless skip_csrf_meta_tags?
    %meta{ name: 'style-nonce', content: request.content_security_policy_nonce }

    = custom_stylesheet

    = yield :header_tags

  %body{ class: body_classes }
    = content_for?(:content) ? yield(:content) : yield

    .logo-resources{ 'tabindex' => '-1', 'inert' => true, 'aria-hidden' => 'true' }
      = inline_svg_tag 'logo-symbol-icon.svg'
      = inline_svg_tag 'logo-symbol-wordmark.svg'
