SE WEB · 0.8 DOCS

Build Web components with SE

SE Web keeps HTML, CSS, and browser concepts recognizable while reusing make, indentation, and familiar SE control flow.

SE Web is documented separately as 0.8. Generated app.ts is a TypeScript-compatible companion output, and advanced browser features may still use the native escape hatch.

Components

Web components reuse make. html, css, and js sections are associated with each component instance.

SE
make Button text
    html
        button text

    css
        padding 12
        border_radius 8

    js
        when click
            say text

Pages & routing

Declare multiple pages; the generated router uses the History API for navigation.

SE
page "/"
    Home

page "/settings"
    Settings

page "/about"
    About

HTML + CSS

HTML tags remain Web concepts, while CSS properties can use SE-style underscores such as border_radius.

SE
html
    main
        h1 "Hello"
        p "Welcome"

css
    padding 12
    background "white"

    button:hover
        opacity 0.8

Browser behavior

Event code supports common assignments, conditions, loops, error handling, and supported async browser operations.

SE
js
    when click
        count += 1
        if count >= 10
            say "10+"
        else
            say count

Browser API

Requests, JSON, forms, uploads, navigation, cancellation, and common DOM helpers.

Requests & async

SE
options = [
    "timeout": 8000,
    "retries": 2,
    "throw_http": true
]

task = browser.get_json "/api/users" options
result = async.await task
say result.data

Navigation & DOM

SE
browser.go "/settings"
browser.back()

browser.text "#status" "Saved"
browser.set_value "#name" "SE"
browser.disable "#save"

Browser API helper list

The request, navigation, DOM, and cancellation helpers documented for 0.8.

Browser API
browser.request
browser.get
browser.get_json
browser.post
browser.post_json
browser.put_json
browser.patch_json
browser.delete
browser.submit_json
browser.upload
browser.cancel
browser.cancel_all
browser.form_json
browser.go
browser.replace
browser.back
browser.forward
browser.reload
browser.open
browser.text
browser.value
browser.set_value
browser.show
browser.hide
browser.disable
browser.enable
browser.attr
browser.html
browser.pretty
browser.online

Native escape hatch

For Web platform features not yet mapped by SE Web, use native inside html, css, or js sections.

SE
html
    native "<dialog open>Advanced HTML</dialog>"

css
    native "accent-color: auto;"

js
    native "console.info('native browser code')"

Build output

Terminal
se web build app.se dist

# dist/
#   index.html
#   style.css
#   app.js
#   app.ts
Do not place API secrets, database passwords, or server-only credentials in browser `.se` source. CORS, authentication, authorization, CSRF, and server-side validation remain backend/browser security responsibilities.