✅ COMPLETED: 1. Dockerfile uses port 80 (astro preview) 2. BaseLayout imports globals.css 3. globals.css with Tailwind v4 @theme syntax 4. index.astro has Header, Footer, FixedContact 5. All image references fixed to existing files 6. Hero uses hdpe_pipe_main.jpg 7. Product cards use hdpe001.jpg 8. pt-20 on main for fixed header ✅ TESTED LOCALLY: - Build: 15 pages in 1.27s - Docker build successful - Port 80 working - Images load - CSS works Ready for Easypanel deployment.
37 lines
1.2 KiB
Plaintext
37 lines
1.2 KiB
Plaintext
---
|
|
import * as mod from 'virtual:astro:assets/fonts/internal';
|
|
import { filterPreloads } from '../dist/assets/fonts/core/filter-preloads.js';
|
|
import { AstroError, AstroErrorData } from '../dist/core/errors/index.js';
|
|
|
|
// TODO: remove check when fonts are stabilized
|
|
const { componentDataByCssVariable } = mod;
|
|
if (!componentDataByCssVariable) {
|
|
throw new AstroError(AstroErrorData.ExperimentalFontsNotEnabled);
|
|
}
|
|
|
|
interface Props {
|
|
/** The `cssVariable` registered in your Astro configuration. */
|
|
cssVariable: import('astro:assets').CssVariable;
|
|
/** Whether it should output [preload links](https://web.dev/learn/performance/optimize-web-fonts#preload) or not. */
|
|
preload?: import('astro:assets').FontPreloadFilter;
|
|
}
|
|
|
|
const { cssVariable, preload = false } = Astro.props as Props;
|
|
const data = componentDataByCssVariable.get(cssVariable);
|
|
if (!data) {
|
|
throw new AstroError({
|
|
...AstroErrorData.FontFamilyNotFound,
|
|
message: AstroErrorData.FontFamilyNotFound.message(cssVariable),
|
|
});
|
|
}
|
|
|
|
const filteredPreloadData = filterPreloads(data.preloads, preload);
|
|
---
|
|
|
|
<style set:html={data.css}></style>
|
|
{
|
|
filteredPreloadData?.map(({ url, type }) => (
|
|
<link rel="preload" href={url} as="font" type={`font/${type}`} crossorigin />
|
|
))
|
|
}
|