├── .formatter.exs
├── .github
└── workflows
│ └── elixir.yml
├── .gitignore
├── LICENSE.md
├── README.md
├── config
└── config.exs
├── lib
└── surface_boostrap4
│ ├── alert.ex
│ ├── badge.ex
│ ├── breadcrumb.ex
│ ├── breadcrumb
│ └── breadcrumb_item.ex
│ ├── button.ex
│ ├── button_group.ex
│ ├── container.ex
│ ├── container
│ ├── col.ex
│ └── row.ex
│ ├── list_group.ex
│ ├── list_group
│ └── list_group_item.ex
│ ├── nav.ex
│ ├── nav
│ ├── nav_item.ex
│ └── nav_link.ex
│ ├── progress.ex
│ ├── table.ex
│ └── table
│ └── column.ex
├── mix.exs
├── mix.lock
└── test
├── surface_bootstrap4
├── alert_test.exs
├── badge_test.exs
├── breadcrumb_test.exs
├── button_group_test.exs
├── button_test.exs
├── container_test.exs
├── list_group_test.exs
├── nav_test.exs
├── progress_test.exs
└── table_test.exs
└── test_helper.exs
/.formatter.exs:
--------------------------------------------------------------------------------
1 | # Used by "mix format"
2 | [
3 | import_deps: [:phoenix, :surface],
4 | inputs: ["{mix,.formatter}.exs", "{config,lib,test}/**/*.{ex,exs}"]
5 | ]
6 |
--------------------------------------------------------------------------------
/.github/workflows/elixir.yml:
--------------------------------------------------------------------------------
1 | name: Elixir CI
2 |
3 | on:
4 | push:
5 | branches: [ master ]
6 | pull_request:
7 | branches: [ master ]
8 |
9 | jobs:
10 | build:
11 |
12 | runs-on: ubuntu-latest
13 |
14 | steps:
15 | - uses: actions/checkout@v2
16 | - name: Setup elixir
17 | uses: actions/setup-elixir@v1
18 | with:
19 | elixir-version: '1.10.3' # Define the elixir version [required]
20 | otp-version: '22.2' # Define the OTP version [required]
21 | - name: Install Dependencies
22 | run: mix deps.get
23 | - name: Run Tests
24 | run: mix test
25 | - name: Check unused dependencies
26 | run: mix deps.unlock --check-unused
27 | - name: Check formatted
28 | run: mix format --check-formatted
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # The directory Mix will write compiled artifacts to.
2 | /_build/
3 |
4 | # If you run "mix test --cover", coverage assets end up here.
5 | /cover/
6 |
7 | # The directory Mix downloads your dependencies sources to.
8 | /deps/
9 |
10 | # Where third-party dependencies like ExDoc output generated docs.
11 | /doc/
12 |
13 | # Ignore .fetch files in case you like to edit your project deps locally.
14 | /.fetch
15 |
16 | # If the VM crashes, it generates a dump, let's ignore it too.
17 | erl_crash.dump
18 |
19 | # Also ignore archive artifacts (built via "mix archive.build").
20 | *.ez
21 |
22 | # Ignore package tarball (built via "mix hex.build").
23 | surface_bootstrap4-*.tar
24 |
25 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | # MIT License
2 |
3 | Copyright (c) 2020 Thomas Schmidleithner
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining
6 | a copy of this software and associated documentation files (the
7 | "Software"), to deal in the Software without restriction, including
8 | without limitation the rights to use, copy, modify, merge, publish,
9 | distribute, sublicense, and/or sell copies of the Software, and to
10 | permit persons to whom the Software is furnished to do so, subject to
11 | the following conditions:
12 |
13 | The above copyright notice and this permission notice shall be
14 | included in all copies or substantial portions of the Software.
15 |
16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
20 | LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
21 | OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
22 | WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # SurfaceBootstrap4 (WIP)
2 |
3 | 
4 |
5 | A set of [Surface](https://github.com/msaraiva/surface/) components
6 | based on [Bootstrap 4](https://getbootstrap.com/) for
7 | [Phoenix LiveView](https://github.com/phoenixframework/phoenix_live_view).
8 |
9 | This project is heavily inspired by [surface_bulma](https://github.com/msaraiva/surface_bulma)
10 | which is implemented and maintained by the [author](https://github.com/msaraiva) of
11 | [Surface](https://github.com/msaraiva/surface/).
12 |
13 | > **Note**: This is not a full-featured suite of components yet.
14 |
15 | ## Components
16 |
17 | More components will be added soon. Contributions are welcome!
18 |
19 | ### Layout
20 |
21 | * [x] Container (with fluid support + Row, Col)
22 |
23 | ### Components
24 |
25 | * [x] Alerts (colors, closeable)
26 | * [x] Badge
27 | * [x] Breadcrumb
28 | * [x] Buttons (colors, sizes and states)
29 | * [x] Button group
30 | * [ ] Card
31 | * [ ] Carousel
32 | * [ ] Collapse
33 | * [ ] Dropdowns
34 | * [ ] Forms
35 | * [ ] Input group
36 | * [ ] Jumbotron
37 | * [x] List group
38 | * [ ] Media object
39 | * [ ] Modal
40 | * [x] Navs (Nav, NavItem, NavLink)
41 | * [ ] Navbar
42 | * [ ] Pagination
43 | * [ ] Popovers
44 | * [x] Progress (colors, animated and striped)
45 | * [ ] Scrollspy
46 | * [ ] Spinners
47 | * [x] Tables (striped, bordered, borderless, hoverable, dark)
48 | * [ ] Toasts
49 | * [ ] Tooltips
50 |
51 | ## Example
52 |
53 | ```jsx
54 |