Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
22 commits
Select commit Hold shift + click to select a range
6c9bc06
workload
issackjohn Nov 15, 2024
0960348
Addressing PR comments part 1
issackjohn May 30, 2025
59bc836
add matchMedia to responsive design (#32)
issackjohn Jul 15, 2025
55327f6
Add disconnected callback (#33)
issackjohn Jul 15, 2025
a6d23a6
Capture sync async work for getBoundingRectAndElementFromPoint (#34)
issackjohn Jul 21, 2025
df2592a
Capture sync async with getBoundingClientRect (#35)
issackjohn Jul 28, 2025
8b4e3bb
Remove nested iframe, add double RAF (#37)
issackjohn Aug 14, 2025
5cede90
Add content visibility change handler for video grid (#39)
issackjohn Aug 18, 2025
06a0513
nit: remove extra new line.
issackjohn Aug 18, 2025
d049bc2
Add responsive design benchmark back
issackjohn Aug 25, 2025
c7327fe
fix build break
issackjohn Aug 25, 2025
ed1221c
testing fix
issackjohn Aug 25, 2025
4567779
refactor: remove unnecessary fallback promises in default tests
issackjohn Aug 25, 2025
4c7d8f4
fix: add missing newline at end of default-tests.mjs
issackjohn Aug 25, 2025
02b0953
refactor: comment out promise for video grid visibility
issackjohn Aug 25, 2025
23abca1
refactor: uncomment promise for video grid visibility and adjust scro…
issackjohn Aug 26, 2025
a449b7e
refactor: simplify scrollIntoView options for chat window
issackjohn Aug 26, 2025
8bb3570
refactor: update chat window anchor ID and adjust scrollIntoView opti…
issackjohn Aug 26, 2025
69f614f
refactor: update chat anchor structure and simplify scrollIntoView op…
issackjohn Aug 26, 2025
d810f56
refactor: remove chat anchor ID and update focus handling for chat input
issackjohn Aug 26, 2025
65490c8
refactor: update chat input selector to target textarea for improved …
issackjohn Aug 26, 2025
d0a3c11
refactor: comment out cvWorkComplete await to improve test execution …
issackjohn Aug 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .eslintignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,5 @@ package-lock.json
/resources/perf.webkit.org

/resources/react-stockcharts

/experimental/responsive-design/build-dev/
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -35,3 +35,5 @@

/resources/charts/node_modules/
/resources/todomvc/big-dom-generator/node_modules/
/experimental/responsive-design/node_modules/
/experimental/responsive-design/build-dev/
2 changes: 2 additions & 0 deletions .prettierignore
Original file line number Diff line number Diff line change
Expand Up @@ -46,3 +46,5 @@ package-lock.json
/resources/perf.webkit.org

/resources/react-stockcharts
/experimental/responsive-design/build-dev/
/experimental/responsive-design/**/*.generated.css
3 changes: 2 additions & 1 deletion .prettierrc
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,6 @@
"singleQuote": false,
"tabWidth": 4,
"trailingComma": "es5",
"useTabs": false
"useTabs": false,
"plugins": ["prettier-plugin-tailwindcss"]
}
114 changes: 114 additions & 0 deletions experimental/responsive-design/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
# Cooking With Lit and TailwindCSS

A single-page cooking website built with [Lit](https://lit.dev/) and [Tailwind CSS](https://tailwindcss.com/).

## Table of Contents

- [Introduction](#introduction)
- [Installation](#installation)
- [Usage](#usage)
- [Production](#production)
- [Project Structure](#project-structure)
- [Components](#components)
- [Data Sources](#data-sources)

## Introduction

This project is a responsive cooking website that showcases recipes, articles, and cooking videos. It is built using Lit for efficient web components and Tailwind CSS for styling. The app features interactive components like a chat window, recipe cards, and a video grid, providing users with an engaging experience.

## Installation

Ensure you have [Node.js](https://nodejs.org/en) installed.

```bash
npm install
```

## Usage

To run the app in development mode with live reloading:

```bash
npm run dev
```

The script above runs the following commands concurrently, scanning your template files for classes, build your CSS, and launch the development server:

- Tailwind CSS for Main Styles:

```bash
npm run dev:main-css
```

Compiles input.css into tailwind.generated.css and watches for changes.

- Tailwind CSS for Chat Window Styles:

```bash
npm run dev:chat-window-css
```

Compiles styles specific to the chat window into tailwind.chat-window.generated.css.

- Rollup watch

```bash
npm run dev:rollup
```

Bundles the JavaScript files using Rollup and watches for changes.

- Development Server
```bash
npm run dev:serve
```
Runs a development server with live reloading

Access the app at http://localhost:8000 (default port).

## Production

To build and serve the production version of the app, run the following command:

```bash
npm run build
npm run serve
```

The command will:

- Compile and minify the CSS files.
- Bundle and minify JavaScript files using Rollup.
- Copy necessary assets to the `dist/` directory.

## Project Structure

```
├── dist/ # Production build output
├── public/ # Public assets like images
├── src/
│ ├── data/ # Data files (recipes, articles, etc.)
│ ├── lib/
│ │ └── components/ # Lit components
│ ├── input.css # Tailwind CSS input file
│ └── app.js # Main JavaScript entry point
├── index.html # Main HTML file
├── package.json # NPM configuration
├── tailwind.chat-window.config.js # Tailwind CSS configuration
├── tailwind.config.js # Tailwind CSS configuration
└── rollup.config.js # Rollup bundler configuration
```

## Components

#### CookingApp (cooking-app.js)

The root component that composes all other components to build the app interface.

## Data Sources

The app uses static data files located in the `src/data/` directory:

## Icons

The icons used in this project are from [Heroicons](https://github.com/tailwindlabs/heroicons/blob/master/LICENSE).
334 changes: 334 additions & 0 deletions experimental/responsive-design/dist/app.js

Large diffs are not rendered by default.

61 changes: 61 additions & 0 deletions experimental/responsive-design/dist/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Cooking with Lit and Tailwind</title>
<script type="module" src="app.js"></script>
<style>
body,
html {
margin: 0;
width: 100%;
height: 100%;
}
body {
overflow: auto;
}
</style>
<!-- Preload links autogenerated by Rollup -->
<link rel="preload" as="image" href="./public/images/5-healthy-smoothie.webp">
<link rel="preload" as="image" href="./public/images/beef-stroganoff.webp">
<link rel="preload" as="image" href="./public/images/beef-tacos.webp">
<link rel="preload" as="image" href="./public/images/best-comfort-food.webp">
<link rel="preload" as="image" href="./public/images/bread-at-home.webp">
<link rel="preload" as="image" href="./public/images/caesar-salad.webp">
<link rel="preload" as="image" href="./public/images/chicken-alfredo.webp">
<link rel="preload" as="image" href="./public/images/chocolate-cake.webp">
<link rel="preload" as="image" href="./public/images/chocolate-chip-cookies.webp">
<link rel="preload" as="image" href="./public/images/fruit-salad.webp">
<link rel="preload" as="image" href="./public/images/garlic-bread.webp">
<link rel="preload" as="image" href="./public/images/gluten-free-baking.webp">
<link rel="preload" as="image" href="./public/images/greek-salad.webp">
<link rel="preload" as="image" href="./public/images/homemade-pizza.webp">
<link rel="preload" as="image" href="./public/images/icons-outline.webp">
<link rel="preload" as="image" href="./public/images/lemon-drizzle-cake.webp">
<link rel="preload" as="image" href="./public/images/low-carb-desserts.webp">
<link rel="preload" as="image" href="./public/images/margherita-pizza.webp">
<link rel="preload" as="image" href="./public/images/mastering-art-of-french-cooking.webp">
<link rel="preload" as="image" href="./public/images/meal-prepping.webp">
<link rel="preload" as="image" href="./public/images/mediterranean-cuisine.webp">
<link rel="preload" as="image" href="./public/images/pancakes.webp">
<link rel="preload" as="image" href="./public/images/plant-based-protein.webp">
<link rel="preload" as="image" href="./public/images/quinoa-stuffed-peppers.webp">
<link rel="preload" as="image" href="./public/images/ramen-noodles.webp">
<link rel="preload" as="image" href="./public/images/seasonal-salads.webp">
<link rel="preload" as="image" href="./public/images/shrimp-paella.webp">
<link rel="preload" as="image" href="./public/images/spaghetti-carbonara.webp">
<link rel="preload" as="image" href="./public/images/superfoods-you-should-include.webp">
<link rel="preload" as="image" href="./public/images/sushi-platter.webp">
<link rel="preload" as="image" href="./public/images/thai-green-curry.webp">
<link rel="preload" as="image" href="./public/images/tomato-soup.webp">
<link rel="preload" as="image" href="./public/images/vegan-burger.webp">
<link rel="preload" as="image" href="./public/images/vegan-desserts.webp">
<link rel="preload" as="image" href="./public/images/vegetable-stir-fry.webp">
<link rel="preload" as="image" href="./public/images/vegetarian-stir-fry.webp">
<link rel="preload" as="image" href="./public/images/week-night-dinners.webp">
</head>
<body>
<cooking-app></cooking-app>
</body>
</html>
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
23 changes: 23 additions & 0 deletions experimental/responsive-design/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Cooking with Lit and Tailwind</title>
<script type="module" src="app.js"></script>
<style>
body,
html {
margin: 0;
width: 100%;
height: 100%;
}
body {
overflow: auto;
}
</style>
</head>
<body>
<cooking-app></cooking-app>
</body>
</html>
Loading
Loading