Skip to content

Commit 2306fda

Browse files
committed
feat: init
1 parent 558b258 commit 2306fda

63 files changed

Lines changed: 5090 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Deploy Example To GitHub Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: read
11+
pages: write
12+
id-token: write
13+
14+
concurrency:
15+
group: github-pages
16+
cancel-in-progress: true
17+
18+
env:
19+
FLUTTER_VERSION: 3.35.7
20+
EXAMPLE_DIR: example
21+
BASE_HREF: /${{ github.event.repository.name }}/
22+
23+
jobs:
24+
build:
25+
runs-on: ubuntu-latest
26+
steps:
27+
- name: Checkout repository
28+
uses: actions/checkout@v4
29+
30+
- name: Set up Flutter
31+
uses: subosito/flutter-action@v2
32+
with:
33+
flutter-version: ${{ env.FLUTTER_VERSION }}
34+
cache: true
35+
36+
- name: Install dependencies
37+
working-directory: ${{ env.EXAMPLE_DIR }}
38+
run: flutter pub get
39+
40+
- name: Build Flutter web example
41+
working-directory: ${{ env.EXAMPLE_DIR }}
42+
run: flutter build web --release --base-href "$BASE_HREF"
43+
44+
- name: Configure GitHub Pages
45+
uses: actions/configure-pages@v5
46+
47+
- name: Upload Pages artifact
48+
uses: actions/upload-pages-artifact@v3
49+
with:
50+
path: ${{ env.EXAMPLE_DIR }}/build/web
51+
52+
deploy:
53+
needs: build
54+
runs-on: ubuntu-latest
55+
environment:
56+
name: github-pages
57+
url: ${{ steps.deployment.outputs.page_url }}
58+
steps:
59+
- name: Deploy to GitHub Pages
60+
id: deployment
61+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,3 +25,4 @@ doc/api/
2525

2626
.flutter-plugins
2727
.flutter-plugins-dependencies
28+
/.idea

.metadata

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# This file tracks properties of this Flutter project.
2+
# Used by Flutter tool to assess capabilities and perform upgrades etc.
3+
#
4+
# This file should be version controlled and should not be manually edited.
5+
6+
version:
7+
revision: "ff37bef603469fb030f2b72995ab929ccfc227f0"
8+
channel: "stable"
9+
10+
project_type: package

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
## 0.0.1
2+
3+
- Initial release of `wave_screen`.
4+
- Added the public `Wave`, `WaveScreen`, and `WaveSkeletonizer` exports.
5+
- Added geometry-aware skeletonizer effects, including the tide-pool style ping-pong wave behavior.
6+
- Added the example application and GitHub Pages workflow for publishing the web demo.

README.md

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,43 @@
11
# wave-screen
22

3+
[![Deploy Example To GitHub Pages](https://github.com/Pathverse/wave-screen/actions/workflows/deploy-example-pages.yml/badge.svg)](https://github.com/Pathverse/wave-screen/actions/workflows/deploy-example-pages.yml)
4+
5+
`wave_screen` is a Flutter package for animated wave-driven UI surfaces. It currently exports three main pieces:
6+
7+
- `Wave` for standalone animated wave treatments.
8+
- `WaveScreen` for layered screen backgrounds and surface styling.
9+
- `WaveSkeletonizer` for geometry-aware loading states, including the tide-pool style ping-pong effect used in the example app.
10+
11+
## Package Exports
12+
13+
The public entrypoint is [lib/wave_screen.dart](lib/wave_screen.dart), which exports:
14+
15+
- [lib/src/wave/wave.dart](lib/src/wave/wave.dart)
16+
- [lib/src/screen/screen.dart](lib/src/screen/screen.dart)
17+
- [lib/src/skeletonizer.dart](lib/src/skeletonizer.dart)
18+
19+
## Run The Example Locally
20+
21+
From the repository root:
22+
23+
```bash
24+
cd example
25+
flutter pub get
26+
flutter run -d chrome
27+
```
28+
29+
## GitHub Pages Example
30+
31+
The example app in [example](example) is deployed to GitHub Pages through [.github/workflows/deploy-example-pages.yml](.github/workflows/deploy-example-pages.yml).
32+
33+
- Trigger: push to `main` or manual `workflow_dispatch`
34+
- Build target: `example/build/web`
35+
- Published URL: `https://pathverse.github.io/wave-screen/`
36+
37+
Before the first deployment, set the repository Pages source to `GitHub Actions` in the GitHub repository settings.
38+
39+
## Development Notes
40+
41+
- The example depends on the local package by path, so build and deployment should always run from [example/pubspec.yaml](example/pubspec.yaml).
42+
- The Pages workflow passes `--base-href "/wave-screen/"` so the Flutter web build serves correctly from the repository subpath.
43+

analysis_options.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
include: package:flutter_lints/flutter.yaml
2+
3+
# Additional information about this file can be found at
4+
# https://dart.dev/guides/language/analysis-options

example/.gitignore

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Miscellaneous
2+
*.class
3+
*.log
4+
*.pyc
5+
*.swp
6+
.DS_Store
7+
.atom/
8+
.build/
9+
.buildlog/
10+
.history
11+
.svn/
12+
.swiftpm/
13+
migrate_working_dir/
14+
15+
# IntelliJ related
16+
*.iml
17+
*.ipr
18+
*.iws
19+
.idea/
20+
21+
# The .vscode folder contains launch configuration and tasks you configure in
22+
# VS Code which you may wish to be included in version control, so this line
23+
# is commented out by default.
24+
#.vscode/
25+
26+
# Flutter/Dart/Pub related
27+
**/doc/api/
28+
**/ios/Flutter/.last_build_id
29+
.dart_tool/
30+
.flutter-plugins-dependencies
31+
.pub-cache/
32+
.pub/
33+
/build/
34+
/coverage/
35+
36+
# Symbolication related
37+
app.*.symbols
38+
39+
# Obfuscation related
40+
app.*.map.json
41+
42+
# Android Studio will place build artifacts here
43+
/android/app/debug
44+
/android/app/profile
45+
/android/app/release

example/.metadata

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# This file tracks properties of this Flutter project.
2+
# Used by Flutter tool to assess capabilities and perform upgrades etc.
3+
#
4+
# This file should be version controlled and should not be manually edited.
5+
6+
version:
7+
revision: "ff37bef603469fb030f2b72995ab929ccfc227f0"
8+
channel: "stable"
9+
10+
project_type: app
11+
12+
# Tracks metadata for the flutter migrate command
13+
migration:
14+
platforms:
15+
- platform: root
16+
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
17+
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
18+
- platform: web
19+
create_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
20+
base_revision: ff37bef603469fb030f2b72995ab929ccfc227f0
21+
22+
# User provided section
23+
24+
# List of Local paths (relative to this file) that should be
25+
# ignored by the migrate tool.
26+
#
27+
# Files that are not part of the templates will be ignored by default.
28+
unmanaged_files:
29+
- 'lib/main.dart'
30+
- 'ios/Runner.xcodeproj/project.pbxproj'

example/README.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
# wave_screen_example
2+
3+
A new Flutter project.
4+
5+
## Getting Started
6+
7+
This project is a starting point for a Flutter application.
8+
9+
A few resources to get you started if this is your first Flutter project:
10+
11+
- [Learn Flutter](https://docs.flutter.dev/get-started/learn-flutter)
12+
- [Write your first Flutter app](https://docs.flutter.dev/get-started/codelab)
13+
- [Flutter learning resources](https://docs.flutter.dev/reference/learning-resources)
14+
15+
For help getting started with Flutter development, view the
16+
[online documentation](https://docs.flutter.dev/), which offers tutorials,
17+
samples, guidance on mobile development, and a full API reference.

example/analysis_options.yaml

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# This file configures the analyzer, which statically analyzes Dart code to
2+
# check for errors, warnings, and lints.
3+
#
4+
# The issues identified by the analyzer are surfaced in the UI of Dart-enabled
5+
# IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be
6+
# invoked from the command line by running `flutter analyze`.
7+
8+
# The following line activates a set of recommended lints for Flutter apps,
9+
# packages, and plugins designed to encourage good coding practices.
10+
include: package:flutter_lints/flutter.yaml
11+
12+
linter:
13+
# The lint rules applied to this project can be customized in the
14+
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
15+
# included above or to enable additional rules. A list of all available lints
16+
# and their documentation is published at https://dart.dev/lints.
17+
#
18+
# Instead of disabling a lint rule for the entire project in the
19+
# section below, it can also be suppressed for a single line of code
20+
# or a specific dart file by using the `// ignore: name_of_lint` and
21+
# `// ignore_for_file: name_of_lint` syntax on the line or in the file
22+
# producing the lint.
23+
rules:
24+
# avoid_print: false # Uncomment to disable the `avoid_print` rule
25+
# prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule
26+
27+
# Additional information about this file can be found at
28+
# https://dart.dev/guides/language/analysis-options

0 commit comments

Comments
 (0)