# silk
[](https://hex.pm/packages/silk)
[](https://hexdocs.pm/silk/)
Gleam wrapper for the Erlang port of wxWidgets.
Note: silk is experimental and has not yet been completed.
The goal is to have an accurate mapping from built in Erlang functions to Gleam.
```sh
gleam add silk
```
```gleam
import gleam/erlang/process
import gleam/int
import gleam/list
import silk/boxsizer
import silk/constants
import silk/frame
import silk/sizer
import silk/staticboxsizer
import silk/statictext
import silk/types
import silk/window
import silk/wx
pub fn main() {
wx.new()
let frame =
frame.new4(wx.null(), constants.id_any, "Demo Window", [
frame.Size(#(500, 500)),
])
let main_sizer = boxsizer.new(constants.vertical)
let text_sizer =
staticboxsizer.new3(constants.vertical, frame, [
staticboxsizer.Label("Area of Text"),
])
let static = statictext.new3(frame, constants.id_any, "Hello World")
sizer.add3(text_sizer, static, [
sizer.Border(10),
sizer.Flag(int.bitwise_or(
constants.stretch_expand,
constants.direction_all,
)),
])
sizer.add3(main_sizer, wx.coerce(text_sizer), [
sizer.Flag(constants.stretch_expand),
])
window.set_sizer(frame, main_sizer)
window.show(frame)
process.sleep_forever()
}
@external(erlang, "wxPanel", "setSizer")
pub fn set_sizer(panel: a, sizer: b) -> types.OkT
```
Further documentation can be found at <https://hexdocs.pm/silk>.