Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
300 commits
Select commit Hold shift + click to select a range
2af3c21
Merge pull request #73 from Konyaco/update_build_script
Sanlorng Oct 28, 2024
3033df6
Update github_snapshot_build.yml
Sanlorng Oct 28, 2024
5df68f0
Update Kotlin to 2.0.21 and all deps
terrakok Nov 1, 2024
2c46c0f
Use kotlin uuid instead of the library
terrakok Nov 1, 2024
d378e9e
Set proper gradle properties
terrakok Nov 1, 2024
d9c9182
Fix toolchain version in java only modules
terrakok Nov 1, 2024
e94ee2c
Use kotlinx-datetime instead of jvm only calendar and avoid jvm only …
terrakok Nov 1, 2024
c393dc7
Add wasmJs target
terrakok Nov 1, 2024
982ae49
Refactor gradle properties
terrakok Nov 2, 2024
6f1116c
Update gradle and deps
terrakok Nov 2, 2024
d6fb911
Add js target
terrakok Nov 2, 2024
f59ef63
Fix day names in browsers
terrakok Nov 2, 2024
a01c68c
Fix calendar view days offset
terrakok Nov 2, 2024
e4b9d69
Delete unused code and fix java compilation
terrakok Nov 2, 2024
ccfa74e
Update .gitignore
terrakok Nov 2, 2024
7a7c85e
Fix browser calendar day offset
terrakok Nov 2, 2024
4dc8678
Add iOS target and demo app
terrakok Nov 2, 2024
f6b1fb8
Fix Calendar first day of week in JS target
Konyaco Nov 2, 2024
4e667fc
Add first day of week fallback for Firefox
Konyaco Nov 2, 2024
4d96e9a
Add workflow to deploy Github Pages
Konyaco Nov 2, 2024
7c29aec
Remove `skiko.js` dependency in wasm target
Konyaco Nov 2, 2024
38ed63a
Add browser icon metadata
Konyaco Nov 2, 2024
5fc791d
Disable workflow cache
Konyaco Nov 2, 2024
797b97d
[gallery] Add iOS icons
123Duo3 Nov 2, 2024
8b42ee8
Move iosApp into gallery
123Duo3 Nov 2, 2024
0d83e59
[gallery] Make titlebar in macOS transparent
123Duo3 Nov 3, 2024
84fc500
[gallery] Remember isMacOS
123Duo3 Nov 3, 2024
b924fbf
[gallery] Detect macOS in the Skiko way
123Duo3 Nov 3, 2024
1daff2b
[fluent] Fixed LocalFontIconFontFamily throw exception in default.
Sanlorng Nov 2, 2024
8ceb655
[gallery] Fixed Layout hit test crash.
Sanlorng Nov 2, 2024
7516452
[fluent] Update source file structure.
Sanlorng Nov 2, 2024
c3c6316
[fluent] Layer with BackgroundSizing parameter as default overload.
Sanlorng Nov 2, 2024
4e751d6
[fluent] New Material API, Acrylic was renamed to Material.
Sanlorng Nov 3, 2024
76821d1
[fluent] Remove the apis which deprecated in Compose 1.7.
Sanlorng Nov 3, 2024
fe3dc88
[fluent] Move iosMain to appleMain.
Sanlorng Nov 3, 2024
f5a515c
[fluent] Update HierarchyTemplate.
Sanlorng Nov 3, 2024
29227b1
[build] Move LibraryVersion setter on project plugin apply stage, fix…
Sanlorng Nov 4, 2024
50e55e7
Add common proguard rules for datetime
Sanlorng Nov 6, 2024
a6d38f8
[gallery] Fix: Keep androidx.compose.foundation.text classes for Prog…
Sanlorng Nov 6, 2024
51b5da0
[gallery] Use configureEach instead of all for KSP task dependency
Sanlorng Nov 6, 2024
58248bb
[gallery] Use WindowInsets to handle title bar and safe area
Sanlorng Nov 6, 2024
0665a84
Enable core library desugaring for CalendarView
Sanlorng Nov 6, 2024
a11a0e8
Rename the `jvmAndAndroid` group to `desktopAndAndroid`
Sanlorng Nov 6, 2024
fe6a353
[CI] feat: Build and Publish Multiplatform Snapshots
Sanlorng Nov 6, 2024
f1ab439
[CI] Add comment to js and wasm build action
Sanlorng Nov 6, 2024
f914c22
docs: Add a note about core library desugar for CalendarView
Sanlorng Nov 6, 2024
ace93b5
[fluent] Refactor: Update CalendarDatePicker to use BasicFlyoutContainer
Sanlorng Nov 6, 2024
c706bac
Fix: Incorrect Flyout acrylic background shape
Sanlorng Nov 6, 2024
ad57cbb
Refactor: Use Windows window frame on Windows 10 or later
Sanlorng Nov 7, 2024
a497272
[gallery] Only support backdrop and frame on Windows 10 or later
Sanlorng Nov 7, 2024
444d170
Refactor: Migrate window frame to common module
Sanlorng Nov 7, 2024
dbe4321
[gallery] Remove window inset from TabView on desktop
Sanlorng Nov 7, 2024
2bbf213
[gallery] Apply dark mode to window title bar
Sanlorng Nov 7, 2024
f267711
Refactor: Remove unused imports in TabViewScreen.desktop.kt
Sanlorng Nov 7, 2024
fa87840
[gallery] Use 64dp instead of 70dp for macOS window left insets
Sanlorng Nov 7, 2024
be6df56
[gallery] Update backdrop background
123Duo3 Nov 7, 2024
eeb0d18
Merge pull request #77 from Konyaco/sync_master_target
Konyaco Nov 7, 2024
4619482
Update screenshot.png
123Duo3 Nov 7, 2024
0ce7bec
chore: Only trigger release workflow on meaningful changes
Sanlorng Nov 8, 2024
74a9e74
[gallery] Refactor: Migrate SettingsScreen to new UI
Sanlorng Nov 8, 2024
8e63186
Refactor: Add dropdown to debug settings tile
Sanlorng Nov 8, 2024
b5ef920
[gallery] Update home screen
123Duo3 Nov 8, 2024
43768b6
Merge pull request #80 from Konyaco/gallery/buildKonfig
Sanlorng Nov 8, 2024
8c09830
[fluent] internal component `OverflowRow`, a common row logic for Top…
Sanlorng Oct 19, 2024
1aacb3e
[fluent] Add BreadcrumbBar
Sanlorng Oct 19, 2024
cb05357
[fluent] Fixed incorrect recompose on OverflowAction
Sanlorng Oct 19, 2024
b8cc43c
[fluent] Add `CommandBarFlyout`
Sanlorng Oct 20, 2024
8eccc3c
[fluent] feat: Implement NavigationView component
Sanlorng Nov 12, 2024
1afb5c5
[fluent] feat: Implement system colors
Sanlorng Nov 14, 2024
d6e05e7
Merge pull request #72 from Konyaco/component/overflow-row
Sanlorng Nov 15, 2024
7ec1bd5
Merge pull request #81 from Konyaco/style/system_colors
Sanlorng Nov 15, 2024
d7b5232
[gallery & fluent] Add `ColorScreen` and aligning some color names wi…
Sanlorng Nov 17, 2024
cd6e766
[fluent] feat: Update ColorScreen section headers
Sanlorng Nov 17, 2024
03c3bb6
[fluent] Adjust Fluent theme colors
Sanlorng Nov 17, 2024
407c1aa
[fluent] Refactor: Use `FluentTheme.colors.borders` for elevation shadow
Sanlorng Nov 17, 2024
b4e18bc
[fluent] Fix incorrect `Slider` track when size is not specified.
Konyaco Nov 17, 2024
c55d2dc
[fluent] feat: Add color on image fill
Sanlorng Nov 17, 2024
28ad7eb
[fluent] feat: Implement focus stroke colors
Sanlorng Nov 17, 2024
6c22cce
[fluent] Fix indicator offset calculation in NavigationView
Sanlorng Nov 18, 2024
697bfdc
[gallery] Fix: Adjust window insets padding for NavigationView
Sanlorng Nov 18, 2024
3af7291
[fluent] Support `enabled` property in Slider
Konyaco Nov 21, 2024
8b2df32
[fluent] Use SliderState in Slider
Konyaco Nov 21, 2024
62c5579
[fluent] Add Slider ticks
Konyaco Nov 21, 2024
5632b46
[fluent] feat: Allow customizing interactionSource for NavigationMenu…
Sanlorng Nov 21, 2024
060195e
[gallery] chore(deps): Update Haze to 1.0.2
Sanlorng Nov 21, 2024
67ee464
[fluent] Fix: Prevent TabView from exceeding its bounds
Sanlorng Nov 22, 2024
40a3719
[fluent] Support Slider steps
Konyaco Nov 22, 2024
30b73d1
[gallery] Add Slider steps sample
Konyaco Nov 22, 2024
9b22a61
[fluent] Refactor: Improve Slider layout and interaction
Sanlorng Nov 22, 2024
3d51b0d
hide back button visible if current system isn't Windows
Sanlorng Nov 27, 2024
84f6317
Merge pull request #83 from Konyaco/component/refactor_slider
Sanlorng Nov 30, 2024
dc53982
Add context menu key modifiers mapping for macOS.
Sanlorng Dec 1, 2024
f38d02b
Merge pull request #91 from Konyaco/update_context_menu_command
Sanlorng Dec 1, 2024
2ec02c7
Add missing spacing.
Sanlorng Dec 1, 2024
eec0334
Merge pull request #87 from Konyaco/haze_update
Sanlorng Dec 1, 2024
5a56a23
Merge pull request #88 from Konyaco/update_tab_row_layout
Sanlorng Dec 1, 2024
d9b9f0c
Add some parameters in MenuItem.
Sanlorng Dec 2, 2024
8b5601d
Merge pull request #85 from Konyaco/navigation_improve
Sanlorng Dec 2, 2024
373a4fc
[fluent] refactor: Refactor AutoSuggestBoxScope to use FlyoutAnchorScope
Sanlorng Nov 24, 2024
c947241
[fluent] feat: Make MenuFlyout scrollable
Sanlorng Nov 24, 2024
9469c0c
[fluent] feat: Add TooltipBox component
Sanlorng Nov 30, 2024
b82b13c
[fluent] feat: Add a label to the Slider's thumb
Sanlorng Nov 30, 2024
79f39ab
Fixed compilation error.
Sanlorng Dec 2, 2024
6920992
[fluent] refactor: Migrate to new `FontIcon`
Sanlorng Nov 20, 2024
e995bb9
[fluent] Apply LocalContentColor and LocalContentAlpha to FontIcon
Sanlorng Nov 20, 2024
8626310
[fluent] fix: Change default width of RatingControl
Sanlorng Nov 20, 2024
85d8712
[fluent] feat: Add BackIcon and NavigationIcon for NavigationView
Sanlorng Nov 21, 2024
7c2a1d1
Fixed compilation error.
Sanlorng Dec 2, 2024
716ab9d
[gallery] Rename DateTimeScreen to CalendarScreen
Sanlorng Dec 2, 2024
0e5285d
[gallery] feat: Add Flyout component
Sanlorng Dec 2, 2024
b47895b
[fluent] Fixed: Add selected color scheme for NavigationItem
Sanlorng Dec 3, 2024
481daf8
[gallery] feat: Add MenuFlyout component samples
Sanlorng Dec 5, 2024
c33f20d
Docs: Add snapshot repository badge and description
Sanlorng Dec 7, 2024
6a6ae20
Docs: Add credits section
Sanlorng Dec 7, 2024
e0c66c1
Docs: Update README with implemented components
Sanlorng Dec 7, 2024
a309d05
Docs: Add supported Kotlin targets to README
Sanlorng Dec 7, 2024
56c6fce
[gallery] feat: Add source code view for ComboBox
Sanlorng Dec 8, 2024
c6a4137
docs: Add contribution guidelines
Sanlorng Dec 12, 2024
9128ba1
[fluent] feat: Add InfoBar componentThis commit introduces the `InfoB…
Sanlorng Dec 15, 2024
07436e3
[gallery] Update InfoBarScreen samplesThis commit updates the InfoBar…
Sanlorng Dec 16, 2024
bd81862
[fluent] feat: Add `Badge` component
Sanlorng Dec 17, 2024
d41e610
[fluent] Update Badge component to pass status to content
Sanlorng Dec 17, 2024
607f395
[fluent] feat: Add badge support for SideNav, TopNav and NavigationView
Sanlorng Dec 17, 2024
2af22b5
Implmente `Badge` and `InfoBar`
Sanlorng Dec 17, 2024
1cfa11e
[fluent] feat: Implement GridViewItem component
Sanlorng Dec 20, 2024
f9c70f3
[fluent] Add FlipView component
Sanlorng Dec 22, 2024
ad4765c
[fluent] Add `SelectorBar` component
Sanlorng Dec 22, 2024
9469366
[fluent] feat: Add PipsPager component
Sanlorng Dec 22, 2024
1f39b80
[fluent] Fix: PipsPager scroll calculation
Sanlorng Dec 22, 2024
abedb35
[fluent] Fix: Correct order of modifiers in PipsPagerItem
Sanlorng Dec 22, 2024
0428016
Update Components in README.md
Sanlorng Dec 22, 2024
226031c
Update README.md
Sanlorng Dec 22, 2024
e9b11af
[fluent] feat: Implement MenuBar component
Sanlorng Dec 29, 2024
befef4c
Merge pull request #100 from Konyaco/component/menu_bar
Konyaco Feb 3, 2025
9a3c8d7
[fluent] Centralize `InfoBar` title when it is multiline content
Konyaco Feb 3, 2025
51b9d01
Merge pull request #92 from Konyaco/gallery/missing_component_pages
Konyaco Feb 3, 2025
f5911d9
[fluent] Fix: Reduce default mouse padding in TooltipBox
Sanlorng Feb 4, 2025
8c1e3e4
Rollback alignment
Konyaco Feb 4, 2025
48977e9
Merge pull request #97 from Konyaco/component/info_bar
Konyaco Feb 4, 2025
f41f254
Merge pull request #99 from Konyaco/component/selector_bar
Konyaco Feb 4, 2025
8c6ea71
Extract default Tooltip content.
Konyaco Feb 4, 2025
f041d5d
Merge pull request #84 from Konyaco/style/update_colors
Konyaco Feb 4, 2025
d6f39d2
Merge remote-tracking branch 'origin/dev' into component/flyout_compo…
Sanlorng Feb 4, 2025
eec43e1
Merge pull request #90 from Konyaco/component/flyout_components
Sanlorng Feb 4, 2025
602636a
Merge remote-tracking branch 'origin/dev' into component/font_icon_pr…
Sanlorng Feb 4, 2025
52a84fd
```
Sanlorng Feb 4, 2025
e524be6
[fluent] Refactor: Improve TopNav layout and behavior
Sanlorng Feb 5, 2025
9bdc7b5
Update multiplatform_snapshot_build.yml
Sanlorng Feb 7, 2025
993c82e
Merge remote-tracking branch 'origin/master' into dev
Sanlorng Feb 7, 2025
654e48d
[fluent] Fix build error: Remove unused platform-specific files
Sanlorng Feb 7, 2025
ecd4593
[readme] Mark Menu Bar as implemented
Sanlorng Feb 7, 2025
38894c4
[gallery] Refactor: Improve CopyButton and add InfoBar sample
Sanlorng Feb 7, 2025
2b4d1e8
Merge branch 'dev' into component/font_icon_primitives
Konyaco Feb 8, 2025
b72a809
Merge pull request #98 from Konyaco/component/collections
Sanlorng Feb 8, 2025
f7bc715
Merge pull request #86 from Konyaco/component/font_icon_primitives
Sanlorng Feb 8, 2025
ef0624b
Merge pull request #93 from Konyaco/readme_update
Sanlorng Feb 8, 2025
cf5dff1
[fluent] Refactor: Improve FlipView and PipsPager page buttons
Sanlorng Feb 9, 2025
d6335ae
[fluent] SideNav: Add content to header item
Sanlorng Feb 9, 2025
cd967cf
[fluent] Separate slider to Slider and BasicSlider
Konyaco Feb 9, 2025
5186f6d
[gallery] Add Slider `showTickMark` and BasicSlider examples.
Konyaco Feb 9, 2025
64e550c
Merge pull request #101 from Konyaco/separate_slider
Sanlorng Feb 10, 2025
1b63d1a
```
Sanlorng Feb 19, 2025
5003692
Merge pull request #102 from Konyaco/windows_title_bar_update
Sanlorng Feb 19, 2025
1511007
[refactor](build) Change groupId
Konyaco Mar 22, 2025
a124895
[refactor](build) Change package
Konyaco Mar 22, 2025
508ab18
[refactor](fluent-android) Change package
Konyaco Mar 22, 2025
5730fc3
[refactor](fluent-common) Change package
Konyaco Mar 22, 2025
c108a76
[refactor](fluent-desktop) Change package
Konyaco Mar 22, 2025
7898669
[refactor](fluent-js, fluent-wasm) Change package
Konyaco Mar 22, 2025
e37e666
[refactor](fluent-skiko) Change package
Konyaco Mar 22, 2025
3338749
[refactor](fluent-apple) Change package
Konyaco Mar 22, 2025
e18300a
[refactor](fluent-build) Change package
Konyaco Mar 22, 2025
33025d7
[refactor](fluent-icon) Change package
Konyaco Mar 22, 2025
6e5d002
[refactor](fluent-icon-extended) Change package
Konyaco Mar 22, 2025
93eb049
[refactor](icon-generator) Change package
Konyaco Mar 22, 2025
51e0d02
[refactor](build) Change package and plugin id
Konyaco Mar 22, 2025
f720c09
[refactor](build-generator) Change package
Konyaco Mar 22, 2025
42b2e78
[refactor](gallery-common) Change package
Konyaco Mar 22, 2025
2446fe2
[refactor](gallery-desktop) Change package
Konyaco Mar 22, 2025
ac47296
[refactor](gallery-android) Change package
Konyaco Mar 22, 2025
95c9dba
[refactor](gallery-js) Change package
Konyaco Mar 22, 2025
85e89b0
[refactor](gallery-skiko) Change package
Konyaco Mar 22, 2025
e884944
[refactor](gallery-ios) Change package
Konyaco Mar 22, 2025
697bd47
[refactor](build) Change package
Konyaco Mar 22, 2025
71fe262
[refactor](gallery) Change package
Konyaco Mar 22, 2025
2640df8
[fix](build) Add missing BuildPlugin
Konyaco Mar 22, 2025
53ed692
[fix](gallery-desktop) Extract `findSkiaLayer` to `SkikoUtil`
Konyaco Mar 22, 2025
8f797a3
[deps][fix](all) Update kotlin to 2.0.21 to fix compiler error
Konyaco Mar 22, 2025
eca26b4
feat: Upgrade Kotlin and dependencies, refactor KSP code and fix some…
Sanlorng Apr 17, 2025
dec6936
[fluent] chore: Update Haze library to 1.5.2 and refactor Haze usage
Sanlorng Apr 17, 2025
c0fe59f
[gallery] Chore: Update project root URL
Sanlorng Apr 17, 2025
5f602d5
Merge pull request #106 from compose-fluent/update_core_lib
Sanlorng Apr 17, 2025
d53cc7c
```
Sanlorng Apr 25, 2025
382e0d3
feat: Upgrade Gradle and dependencies
Sanlorng May 7, 2025
13531e6
feat: Update clipboard usage
Sanlorng May 7, 2025
b850672
feat: Documents.
Sanlorng May 10, 2025
9e5feaa
[refactor](build) Replace maven-publish with vanniktech plugin.
Konyaco Jun 4, 2025
81bd206
[chore](ci-publish) Update the environment names for publishing
Konyaco Jun 4, 2025
21ae174
Update Android SDK to 35
Sanlorng Jun 5, 2025
2b4b3ef
Merge pull request #109 from compose-fluent/update_compose
Sanlorng Jun 5, 2025
a90537a
Update jna version
Sanlorng Jun 5, 2025
6277cb6
Merge pull request #104 from compose-fluent/change-group
Sanlorng Jun 5, 2025
9fe84aa
[gallery] Update macOS window frame effect.
Sanlorng Dec 28, 2024
4361954
Merge pull request #115 from compose-fluent/gallery/update_macos_wind…
Sanlorng Jun 5, 2025
b1c62ec
[docs](README) Update badges, dependency coordinates, and formatting …
Konyaco Jun 5, 2025
6b39fc5
Merge pull request #110 from compose-fluent/doc
Konyaco Jun 5, 2025
3a6f6b3
feat: Add initial date parameter to CalendarDatePickerState
Sanlorng May 27, 2025
85c133c
Chore: Update package name and project identifiers
Sanlorng Jun 6, 2025
7447533
[gallery] Chore: Update package name in CONTRIBUTION.md
Sanlorng Jun 6, 2025
667ca1d
Merge pull request #116 from compose-fluent/readme
Sanlorng Jun 6, 2025
41ae1e1
[KSP] Improve incremental processing for generated files
Sanlorng Jun 8, 2025
d689643
Merge pull request #117 from compose-fluent/fix_generator
Sanlorng Jun 8, 2025
dd151ad
Update InfoBar layout to align title using baselines
Sanlorng May 16, 2025
7b52cca
feat: Add SecureTextField component and update TextField
Sanlorng Apr 18, 2025
2e28ccf
Refactor: Move TextField Header into DecorationBox
Sanlorng Jun 8, 2025
5ca46c4
[fluent] Fix: TextField DecorationBox not inheriting parent modifier
Sanlorng Jun 8, 2025
f4a6a87
[fluent] Update `TextField` doc.
Sanlorng Jun 8, 2025
d964473
Fix minimize and close button support for Windows UI
kdroidFilter Jun 8, 2025
4f740d8
Merge pull request #119 from kdroidFilter/dev
Sanlorng Jun 8, 2025
5cad6df
[gallery] feat: Add Compose Hot Reload plugin
Sanlorng Jun 9, 2025
235e0eb
Merge pull request #120 from compose-fluent/compose_hot_load
Sanlorng Jun 9, 2025
2c3e9e8
Refactor: Update LayoutHitTestOwner for Compose 1.8 compatibility
Sanlorng Jun 9, 2025
a411699
fix: Update window info on hit test
Sanlorng Jun 9, 2025
b43a742
Merge pull request #121 from compose-fluent/gallery/update_windows_ti…
Sanlorng Jun 9, 2025
9d7afd9
[build] Fixed publish
Sanlorng Jun 9, 2025
48e9414
Refactor: Replace `BringIntoViewResponder` with `BringIntoViewModifie…
Sanlorng Jun 9, 2025
d18fe26
[docs](README) Update screenshot
123Duo3 Jun 9, 2025
0c27450
Merge pull request #118 from compose-fluent/update_info_bar_layout
Konyaco Jun 11, 2025
f34cfc4
Merge pull request #107 from compose-fluent/text_field_password_type
Konyaco Jun 11, 2025
202d27f
[fix](dialog) Let ContentDialog background fill width
Konyaco Jun 11, 2025
e2c24ed
[fluent] Fix: Remove redundant textFieldModifier
Sanlorng Jun 12, 2025
eb891d7
Merge pull request #122 from compose-fluent/update_bring_into_view
Sanlorng Jun 12, 2025
a35295c
Merge pull request #113 from compose-fluent/calendar_state_constructor
Konyaco Jun 14, 2025
95fe984
[fix](radio_button) Align RadioButton label vertically to center
Konyaco Jun 14, 2025
d9deacb
[feat](flyout) Add focusable parameter to Flyout component to control…
Konyaco Jun 14, 2025
bef6d22
Refactor mouse position retrieval in JNA Windows procedures
Sanlorng Jul 4, 2025
1e58167
Deps: Update dependencies
Sanlorng Jul 5, 2025
9d9b923
build: Update kotlinx-datetime to 0.7.1
Sanlorng Jul 9, 2025
99c24e7
Merge pull request #123 from compose-fluent/flyout-focusable
Sanlorng Jul 18, 2025
e841e46
Merge pull request #124 from compose-fluent/update_deps
Konyaco Jul 18, 2025
1b36689
Refactor: Migrate to Android-KMP plugin and update build configurations
Sanlorng Jul 21, 2025
4835177
build: Disable Yarn
Sanlorng Jul 21, 2025
ad14343
build: test build gallery/js
Sanlorng Jul 21, 2025
5d72bf3
Refactor: Remove update_project_structure branch from multiplatform s…
Sanlorng Jul 21, 2025
b3cb4be
Merge pull request #125 from compose-fluent/update_project_structure
Konyaco Jul 22, 2025
7be4598
更新 BuildExtension.kt
Sanlorng Jul 22, 2025
0207e3e
[gallery] Fixed desktop run crashed.
Sanlorng Jul 24, 2025
06c71e7
Update README.md
Sanlorng Aug 5, 2025
286004d
[doc] Update telegram link
123Duo3 Aug 5, 2025
158e19f
[chore](ci) Set build type for gh-pages CI
Konyaco Aug 8, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
The diff you're trying to view is too large. We only load the first 3000 changed files.
2 changes: 2 additions & 0 deletions .github/workflows/deploy-gh-pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,8 @@ jobs:
with:
cache-disabled: true
- name: Build wasm target
env:
PROJECT_BUILD_TYPE: release
run: ./gradlew :gallery:wasmJsBrowserDistribution
- name: Setup Pages
uses: actions/configure-pages@v5
Expand Down
12 changes: 6 additions & 6 deletions .github/workflows/gradle-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ jobs:
- name: Publish to Maven Central
uses: gradle/gradle-build-action@67421db6bd0bf253fb4bd25b31ebb98943c375e1
with:
arguments: publish
arguments: publishToMavenCentral --no-configuration-cache
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }}
SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }}
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.MAVEN_SIGNING_KEY }}
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.MAVEN_SIGNING_KEY_ID }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.MAVEN_SIGNING_PASSWORD }}
160 changes: 160 additions & 0 deletions .github/workflows/multiplatform_snapshot_build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,160 @@
# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support
# documentation.
# This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created
# For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle

name: Multiplatform Snapshot Build

on:
push:
branches:
- dev
paths-ignore:
- 'assets/**'
- '**.md'
- 'LICENSE'
- '**.gitignore'

pull_request_review:
types: submitted

jobs:
build:
strategy:
matrix:
type: [PublishLibrary, Android, Windows, Linux, macOS, iOS, WasmJs, Js]
include:
- type: PublishLibrary
publish: release
os: macos-latest
- type: Android
android: apk
os: ubuntu-latest
- type: Windows
desktop: msi
os: windows-latest
- type: Linux
desktop: deb
os: ubuntu-latest
- type: macOS
desktop: dmg
os: macos-latest
- type: iOS
iOS: ipa
# workaround runner version for iPhoneOS sdk 18.2
os: macos-15
- type: WasmJs
js: wasmJs
os: windows-latest
- type: Js
js: js
os: ubuntu-latest

runs-on: ${{ matrix.os }}
if: ${{ github.event_name != 'pull_request_review' || github.event.review.state == 'approved' }}
permissions:
contents: read
packages: write

steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
ref: ${{ github.ref }}
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'

# Configure Gradle for optimal use in GitHub Actions, including caching of downloaded dependencies.
# See: https://github.com/gradle/actions/blob/main/setup-gradle/README.md
- name: Setup Gradle
uses: gradle/actions/setup-gradle@af1da67850ed9a4cedd57bfd976089dd991e2582 # v4.0.0

# Publish Snapshot Library
- name: Publish Library
if: ${{ github.ref == 'refs/heads/dev' && github.event_name == 'push' && matrix.type == 'PublishLibrary' }}
run: |
./gradlew publishToMavenLocal
./gradlew publishToMavenCentral --no-configuration-cache
env:
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.MAVEN_CENTRAL_USERNAME }}
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.MAVEN_SIGNING_KEY }}
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.MAVEN_SIGNING_KEY_ID }}
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.MAVEN_SIGNING_PASSWORD }}

- name: Upload Library Artifact
if: ${{ github.event_name == 'push' && matrix.type == 'PublishLibrary' }}
uses: actions/upload-artifact@v4
with:
name: Repository-${{ github.run_id }}
path: ~/.m2/repository

# Android Build Action
- name: Build Gallery for ${{ matrix.type }}
if: ${{ matrix.android }}
run: |
echo "$ANDROID_KEYSTORE" | base64 --decode > ${{ github.workspace }}/android_sign_key.jks
./gradlew :gallery:assembleRelease
env:
ANDROID_KEYSTORE: ${{ secrets.ANDROID_KEYSTORE }}
ANDROID_SIGNING_FILE: ${{ github.workspace }}/android_sign_key.jks
ANDROID_SIGNING_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
ANDROID_SIGNING_KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
ANDROID_SIGNING_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}

- name: Upload android build artifacts
if: ${{ matrix.android }}
uses: actions/upload-artifact@v4
with:
name: Gallery-${{ matrix.type }}-${{ github.run_id }}
path: ${{github.workspace}}/gallery/build/outputs/**/*.${{ matrix.android }}

# Desktop Build Action
- name: Build Gallery for ${{ matrix.type }}
if: ${{ matrix.desktop }}
run: |
./gradlew :gallery:packageReleaseDistributionForCurrentOS

- name: Upload desktop build artifacts
if: ${{ matrix.desktop }}
uses: actions/upload-artifact@v4
with:
name: Gallery-${{ matrix.type }}-${{ github.run_id }}
path: ${{github.workspace}}/gallery/build/compose/binaries/main-release/${{ matrix.desktop }}/*.${{ matrix.desktop }}

# iOS Build Action, Note: Due to the long build time, the iOS build only build the debug version.
- name: Set up Xcode
if: ${{ matrix.iOS }}
uses: maxim-lobanov/setup-xcode@v1
with:
xcode-version: 'latest-stable'

- name: Build Gallery for iOS
if: ${{ matrix.iOS }}
run: |
xcodebuild -scheme iosApp -configuration Debug -sdk iphoneos -archivePath gallery/iosApp/build/Gallery.xcarchive archive -workspace gallery/iosApp/iosApp.xcodeproj/project.xcworkspace CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO

- name: Upload iOS Artifact
if: ${{ matrix.iOS }}
uses: actions/upload-artifact@v4
with:
name: Gallery-${{ matrix.type }}-${{ github.run_id }}
path: ${{ github.workspace }}/gallery/iosApp/build/

# Js and WasmJs Build Action
- name: Build Gallery for ${{ matrix.type }}
if: ${{ matrix.js }}
run: |
./gradlew :gallery:${{ matrix.js }}BrowserDistribution

- name: Upload ${{ matrix.type }} build artifacts
if: ${{ matrix.js }}
uses: actions/upload-artifact@v4
with:
name: Gallery-${{ matrix.type }}-${{ github.run_id }}
path: ./gallery/build/dist/${{ matrix.js }}/productionExecutable
149 changes: 149 additions & 0 deletions CONTRIBUTION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,149 @@
# Contributing to Compose-Fluent-UI

Hello and welcome! 🎉

**Our project components are designed using the [Windows UI Kit Figma guidelines](https://www.figma.com/community/file/1440832812269040007/windows-ui-kit). Therefore, the layout and style of the components must strictly adhere to this design guide. Additionally, the components showcased in the Gallery should align as closely as possible with this design guide.**

We are thrilled to have you considering contributing to Compose-Fluent-UI. Contributions are what make the open-source community such an incredible place to learn, inspire, and create. Here are some guidelines to help you get started:

## Getting Started

- **Fork this repository**: Click on the "Fork" button at the top right of this page. This will create a copy of the repository in your account.
- **Select the Dev branch**: Choose the `dev` branch as your base branch.
- **Create a new branch**: Create a new branch from `dev` for your feature or bug fix using `git checkout -b your-branch-name`.
- **Base all development work on your new branch**: Ensure that all your development work is committed to the branch you just created from `dev`.

## Developing Components

- **Create the source code**: In the `fluent/components` directory, create the source code for the component that corresponds to the Windows UI Kit.
```Kotlin
// Button.kt
package io.github.composefluent.components
```
- **Handle internal classes**: If your component involves internal classes that may be used by other components (such as `OverflowRow`), create the relevant classes in the appropriate package (e.g., `/layout`).
```Kotlin
// OverflowRow.kt
package io.github.composefluent.layout.overflow

@Composable
internal fun OverflowRow(
modifier: Modifier = Modifier,
overflow: OverflowPosition = OverflowPosition.End,
state: OverflowRowState = rememberOverflowRowState(),
horizontalArrangement: Arrangement.Horizontal = Arrangement.Start,
verticalAlignment: Alignment.Vertical = Alignment.CenterVertically,
overflowAction: @Composable OverflowActionScope.() -> Unit = {},
contentPadding: PaddingValues = PaddingValues(),
alwaysShowOverflowAction: Boolean = false,
content: OverflowRowScope.() -> Unit
)
```
- **Adhere to guidelines**: When developing, strictly follow the Windows UI Kit for layout, typography, and color.
- **Include TODOs for animations**: If your component involves animations and you're unsure of the specific parameters to use, add a `TODO` note.

## Testing and Showcasing Components

The Gallery app uses KSP and KotlinPoet to automatically generate a navigation tree and Kotlin example source code. Below are the steps to add a component example page in the Gallery:

1. **Create [YourComponent]Screen.kt**: In the package corresponding to the component group, create a `[YourComponent]Screen.kt` file.
```Kotlin
// ButtonScreen.kt
package io.github.composefluent.gallery.screen.basicinput
```
2. **Create a method with @Component annotation**: Create a method named `[YourComponent]Screen` and annotate it with `@Component`, providing the relevant `description` and `index`.
```Kotlin
// ButtonScreen.kt
@Component(index = 0, description = "A control that responds to user input")
@Composable
fun ButtonScreen() {

}
```

3. **Use GalleryPage method**: In this method, use the `GalleryPage` method to create a uniform component example page layout. The `GalleryPage` method takes `componentPath` and `galleryPath` as parameters, which are provided by the `FluentSourceFile` and `ComponentPagePath` classes generated by KSP, indicating the source code path of the component and the corresponding Gallery example code path.
```Kotlin
// ButtonScreen.kt
@Component(index = 0, description = "A control that responds to user input")
@Composable
fun ButtonScreen() {
GalleryPage(
componentPath = FluentSourceFile.Button,
galleryPath = ComponentPagePath.ButtonScreen,
) {
// Sample sections.
}
}
```
4. **Use Section method in GalleryPage**: Within `GalleryPage`, use the `Section` method for each component example. The `Section` method provides `output` and `options` parameters for adjusting options and display output. The `sourceCode` parameter should be the global variable generated by the `@Sample` annotation (which contains the component source code).
```Kotlin
// ButtonScreen.kt
@Component(index = 0, description = "A control that responds to user input")
@Composable
fun ButtonScreen() {
GalleryPage(
componentPath = FluentSourceFile.Button,
galleryPath = ComponentPagePath.ButtonScreen,
) {
val clickTextContent = remember { mutableStateOf("") }
val buttonEnabled = remember { mutableStateOf(true) }
Section(
title = "A simple Button with text content.",
content = {
ButtonSample(enabled = buttonEnabled.value) { clickTextContent.value = "You clicked: Button 1" }
},
output = {
if (clickTextContent.value.isNotBlank()) {
Text(clickTextContent.value)
}
},
options = {
CheckBox(
checked = !buttonEnabled.value,
onCheckStateChange = { buttonEnabled.value = !it },
label = "Disable button"
)
},
sourceCode = sourceCodeOfButtonSample
)
}
}
```
5. **Create an example**: In the `[YourComponent]Screen.kt` file, add a new method named `[YourComponentCase]Sample` with a private visibility modifier, and annotate this method with `@Sample`. This will generate a global variable `sourceCodeOf[YourComponentCase]Sample`, which should be assigned to the `sourceCode` parameter in the corresponding `Section`.
```Kotlin
//ButtonScreen.kt
@Sample
@Composable
private fun ButtonSample(enabled: Boolean = true, onClick: () -> Unit) {
Button(disabled = !enabled, onClick = onClick) {
Text("Standard Compose Button")
}
}
```
6. **Add new groups if needed**: If you cannot find the appropriate group for the component, add a new group in the `ComponentGroupInfo` object, following the format of the existing groups. After adding the group, place the Screen file in the corresponding package.
```Kotlin
// ComponentGrupInfo.kt
package io.github.composefluent.gallery.component

object ComponentGroupInfo {
prival const val screenPackage: String = "io.github.composefluent.gallery.screen"

// Basic Input is group name, ChckboxChecked is icon, packageMap is the component screens under this group were placed, like ButtonScreen
@ComponentGroup("CheckboxChecked", index = 2, packageMap = "$screenPackage.basicinput")
const val BasicInput = "Basic input"

//other groups
//....
}
```

7. At the end, you should see the component example page you've created in the Gallery, ready for demonstration and testing.
![Sample Page](/assets/sample_page_screenshot.png)

8. **Debugging components with scale mode if needed**: If you need to debug your component with scale mode, you can test it in `TestComponentScreen`. Navigate to this test page in the Gallery app through `Settings > Test Component`.
![Test Component Screen](/assets/test_component_screenshot.png)

## Need Help?

If you have any questions or need assistance, feel free to open an issue or reach out to the maintainers. We’re here to help!

Thank you for considering contributing to **Compose-Fluent-UI**. We can’t wait to see what you’ll create!
Loading
Loading