├── .npmrc
├── .stackblitzrc
├── .vscode
├── extensions.json
└── launch.json
├── README.md
├── app.mjs
├── astro-imagetools.config.mjs
├── astro.config.mjs
├── package.json
├── public
└── favicon.ico
├── sandbox.config.json
└── src
├── images
├── elva-480w-close-portrait.jpg
└── elva-800w.jpg
├── layouts
├── LayoutsLayout.astro
├── MainLayout.astro
└── PlaceholderLayout.astro
├── pages
├── api
│ ├── renderBackgroundImage.astro
│ ├── renderBackgroundPicture.astro
│ ├── renderImg.astro
│ └── renderPicture.astro
├── components
│ ├── BackgroundImage.astro
│ ├── BackgroundPicture.astro
│ ├── Img.astro
│ └── Picture.astro
├── index.md
├── layout
│ ├── constrained.astro
│ ├── fill.astro
│ ├── fixed.astro
│ └── fullWidth.astro
└── placeholder
│ ├── blurred.astro
│ ├── dominantColor.astro
│ ├── none.astro
│ └── tracedSVG.astro
└── styles
└── index.css
/.npmrc:
--------------------------------------------------------------------------------
1 | ## force pnpm to hoist
2 | shamefully-hoist = true
--------------------------------------------------------------------------------
/.stackblitzrc:
--------------------------------------------------------------------------------
1 | {
2 | "startCommand": "npm start",
3 | "env": {
4 | "ENABLE_CJS_IMPORTS": true
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": ["astro-build.astro-vscode"],
3 | "unwantedRecommendations": []
4 | }
5 |
--------------------------------------------------------------------------------
/.vscode/launch.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": "0.2.0",
3 | "configurations": [
4 | {
5 | "command": "./node_modules/.bin/astro dev",
6 | "name": "Development server",
7 | "request": "launch",
8 | "type": "node-terminal"
9 | }
10 | ]
11 | }
12 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Astro ImageTools Live Examples
2 |
3 | This repository contains source code for the [**Astro ImageTools Demo**](https://astro-imagetools-demo.vercel.app) website.
4 |
5 | The demo displays live examples of the components and APIs provided by the [**Astro ImageTools**](https://npmjs.com/package/astro-imagetools) library and the **Layouts** and **Placeholders** supported by the library.
6 |
--------------------------------------------------------------------------------
/app.mjs:
--------------------------------------------------------------------------------
1 | import fs from "fs";
2 | import http from "http";
3 | import { middleware } from "astro-imagetools/ssr";
4 | import { handler as ssrHandler } from "./dist/server/entry.mjs";
5 |
6 | http
7 | .createServer(async function (req, res) {
8 | await ssrHandler(req, res, async (err) => {
9 | if (err) {
10 | res.writeHead(500);
11 | res.end(err.toString());
12 | } else {
13 | const assetPath = `./dist/client${req.url}`;
14 |
15 | if (fs.existsSync(assetPath)) {
16 | const buffer = await fs.promises.readFile(assetPath);
17 |
18 | res.writeHead(200);
19 | res.end(buffer);
20 | } else {
21 | const buffer = await middleware(req, res);
22 |
23 | if (buffer) {
24 | res.writeHead(200);
25 | res.end(buffer);
26 | } else {
27 | res.writeHead(404);
28 | res.end();
29 | }
30 | }
31 | }
32 | });
33 | })
34 | .listen(8080);
35 |
36 | console.log("Listening to Port 8080");
37 |
--------------------------------------------------------------------------------
/astro-imagetools.config.mjs:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "astro-imagetools/config";
2 |
3 | export default defineConfig({});
4 |
--------------------------------------------------------------------------------
/astro.config.mjs:
--------------------------------------------------------------------------------
1 | import { defineConfig } from "astro/config";
2 | import { astroImageTools } from "astro-imagetools";
3 |
4 | // https://astro.build/config
5 | export default defineConfig({
6 | vite: {
7 | plugins: [
8 | {
9 | name: "import.meta.url-transformer",
10 | transform: (code, id) => {
11 | if (id.endsWith(".astro"))
12 | return code.replace(/import.meta.url/g, `"${id}"`);
13 | },
14 | },
15 | ],
16 | },
17 |
18 | experimental: {
19 | integrations: true,
20 | },
21 |
22 | integrations: [astroImageTools],
23 | });
24 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "scripts": {
3 | "dev": "astro dev",
4 | "start": "astro dev",
5 | "build": "astro build",
6 | "preview": "astro preview"
7 | },
8 | "dependencies": {
9 | "astro-spa": "^1.3.9",
10 | "react": "^18.1.0",
11 | "react-dom": "^18.1.0"
12 | },
13 | "devDependencies": {
14 | "@astrojs/lit": "^0.1.2",
15 | "@astrojs/preact": "^0.1.2",
16 | "@astrojs/react": "^0.1.1",
17 | "@astrojs/solid-js": "^0.1.2",
18 | "@astrojs/svelte": "^0.1.2",
19 | "@astrojs/vue": "^0.1.3",
20 | "astro": "^1.0.0-beta.20",
21 | "astro-imagetools": "workspace:^0.5.8"
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RafidMuhymin/astro-image-demo/0ee3c242c24c204544d18e884a5312c5789bcacf/public/favicon.ico
--------------------------------------------------------------------------------
/sandbox.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "infiniteLoopProtection": true,
3 | "hardReloadOnChange": false,
4 | "view": "browser",
5 | "template": "node",
6 | "container": {
7 | "port": 3000,
8 | "startScript": "start",
9 | "node": "16"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/src/images/elva-480w-close-portrait.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RafidMuhymin/astro-image-demo/0ee3c242c24c204544d18e884a5312c5789bcacf/src/images/elva-480w-close-portrait.jpg
--------------------------------------------------------------------------------
/src/images/elva-800w.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/RafidMuhymin/astro-image-demo/0ee3c242c24c204544d18e884a5312c5789bcacf/src/images/elva-800w.jpg
--------------------------------------------------------------------------------
/src/layouts/LayoutsLayout.astro:
--------------------------------------------------------------------------------
1 | ---
2 | import { Picture } from "astro-imagetools/components";
3 | import MainLayout from "./MainLayout.astro";
4 |
5 | const { layout, importMetaUrl } = Astro.props;
6 | ---
7 |
8 |
10 |
11 | {layout}
Layout Example
12 |
13 |
{placeholder}
Placeholder Example9 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet, nisi! 10 | Commodi, dolor hic omnis debitis natus eaque nisi magni corrupti earum 11 | aliquam at quidem dolorum? 12 |
13 | 14 |15 | Eos facere amet nesciunt! Vero, culpa eaque quasi ullam atque alias 16 | repudiandae facere placeat ipsam recusandae quam minus nemo officia 17 | reiciendis dicta quaerat maiores omnis. 18 |
19 | 20 |21 | Pariatur doloribus, facilis enim accusamus velit, amet ducimus dolorum 22 | unde numquam doloremque eveniet eum et error, quod quas fugit commodi 23 | suscipit sequi. At, deleniti nihil. 24 |
25 | 26 |27 | Laborum voluptate maxime dicta alias minus nam, doloribus accusantium 28 | veritatis perferendis, expedita eaque. Deleniti deserunt, iure dolorum 29 | itaque fugiat assumenda ullam amet asperiores soluta ipsam! 30 |
31 | 32 |33 | Veniam qui ad, illo fuga autem voluptatibus iusto cum reprehenderit error. 34 | Nemo nisi laborum blanditiis, accusamus dolores harum labore perspiciatis. 35 | Nesciunt, repellat mollitia. Rem, labore? 36 |
`, 37 | }); 38 | --- 39 | 40 |{"renderBackgroundImage"}
API Example8 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet, nisi! 9 | Commodi, dolor hic omnis debitis natus eaque nisi magni corrupti earum 10 | aliquam at quidem dolorum? 11 |
12 | 13 |14 | Eos facere amet nesciunt! Vero, culpa eaque quasi ullam atque alias 15 | repudiandae facere placeat ipsam recusandae quam minus nemo officia 16 | reiciendis dicta quaerat maiores omnis. 17 |
18 | 19 |20 | Pariatur doloribus, facilis enim accusamus velit, amet ducimus dolorum 21 | unde numquam doloremque eveniet eum et error, quod quas fugit commodi 22 | suscipit sequi. At, deleniti nihil. 23 |
24 | 25 |26 | Laborum voluptate maxime dicta alias minus nam, doloribus accusantium 27 | veritatis perferendis, expedita eaque. Deleniti deserunt, iure dolorum 28 | itaque fugiat assumenda ullam amet asperiores soluta ipsam! 29 |
30 | 31 |32 | Veniam qui ad, illo fuga autem voluptatibus iusto cum reprehenderit error. 33 | Nemo nisi laborum blanditiis, accusamus dolores harum labore perspiciatis. 34 | Nesciunt, repellat mollitia. Rem, labore? 35 |
`, 36 | }); 37 | --- 38 | 39 |{"renderBackgroundPicture"}
API Example{"renderImg"}
API Example{"renderPicture"}
API Example{" "}
Component Example
14 | 20 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet, nisi! 21 | Commodi, dolor hic omnis debitis natus eaque nisi magni corrupti earum 22 | aliquam at quidem dolorum? 23 |
24 |25 | Eos facere amet nesciunt! Vero, culpa eaque quasi ullam atque alias 26 | repudiandae facere placeat ipsam recusandae quam minus nemo officia 27 | reiciendis dicta quaerat maiores omnis. 28 |
29 |30 | Pariatur doloribus, facilis enim accusamus velit, amet ducimus dolorum 31 | unde numquam doloremque eveniet eum et error, quod quas fugit commodi 32 | suscipit sequi. At, deleniti nihil. 33 |
34 |35 | Laborum voluptate maxime dicta alias minus nam, doloribus accusantium 36 | veritatis perferendis, expedita eaque. Deleniti deserunt, iure dolorum 37 | itaque fugiat assumenda ullam amet asperiores soluta ipsam! 38 |
39 |40 | Veniam qui ad, illo fuga autem voluptatibus iusto cum reprehenderit error. 41 | Nemo nisi laborum blanditiis, accusamus dolores harum labore perspiciatis. 42 | Nesciunt, repellat mollitia. Rem, labore? 43 |
44 |{" "}
Component Example
9 | 15 | Lorem ipsum dolor sit amet, consectetur adipisicing elit. Eveniet, nisi! 16 | Commodi, dolor hic omnis debitis natus eaque nisi magni corrupti earum 17 | aliquam at quidem dolorum? 18 |
19 |20 | Eos facere amet nesciunt! Vero, culpa eaque quasi ullam atque alias 21 | repudiandae facere placeat ipsam recusandae quam minus nemo officia 22 | reiciendis dicta quaerat maiores omnis. 23 |
24 |25 | Pariatur doloribus, facilis enim accusamus velit, amet ducimus dolorum 26 | unde numquam doloremque eveniet eum et error, quod quas fugit commodi 27 | suscipit sequi. At, deleniti nihil. 28 |
29 |30 | Laborum voluptate maxime dicta alias minus nam, doloribus accusantium 31 | veritatis perferendis, expedita eaque. Deleniti deserunt, iure dolorum 32 | itaque fugiat assumenda ullam amet asperiores soluta ipsam! 33 |
34 |35 | Veniam qui ad, illo fuga autem voluptatibus iusto cum reprehenderit error. 36 | Nemo nisi laborum blanditiis, accusamus dolores harum labore perspiciatis. 37 | Nesciunt, repellat mollitia. Rem, labore? 38 |
39 |{"
"}
Component Example{" "}
Component Example