Package Exports
- @marko/runtime-tags
- @marko/runtime-tags/common/attr-tag
- @marko/runtime-tags/common/compat-meta
- @marko/runtime-tags/common/for
- @marko/runtime-tags/common/helpers
- @marko/runtime-tags/common/meta
- @marko/runtime-tags/common/types
- @marko/runtime-tags/debug/common/attr-tag
- @marko/runtime-tags/debug/common/compat-meta
- @marko/runtime-tags/debug/common/for
- @marko/runtime-tags/debug/common/helpers
- @marko/runtime-tags/debug/common/meta
- @marko/runtime-tags/debug/common/types
- @marko/runtime-tags/debug/dom
- @marko/runtime-tags/debug/dom/abort-signal
- @marko/runtime-tags/debug/dom/compat
- @marko/runtime-tags/debug/dom/control-flow
- @marko/runtime-tags/debug/dom/controllable
- @marko/runtime-tags/debug/dom/dom
- @marko/runtime-tags/debug/dom/event
- @marko/runtime-tags/debug/dom/parse-html
- @marko/runtime-tags/debug/dom/queue
- @marko/runtime-tags/debug/dom/reconcile
- @marko/runtime-tags/debug/dom/renderer
- @marko/runtime-tags/debug/dom/resolve-cursor-position
- @marko/runtime-tags/debug/dom/resume
- @marko/runtime-tags/debug/dom/schedule
- @marko/runtime-tags/debug/dom/scope
- @marko/runtime-tags/debug/dom/signals
- @marko/runtime-tags/debug/dom/template
- @marko/runtime-tags/debug/dom/walker
- @marko/runtime-tags/debug/html
- @marko/runtime-tags/debug/html/attrs
- @marko/runtime-tags/debug/html/compat
- @marko/runtime-tags/debug/html/content
- @marko/runtime-tags/debug/html/dynamic-tag
- @marko/runtime-tags/debug/html/for
- @marko/runtime-tags/debug/html/inlined-runtimes
- @marko/runtime-tags/debug/html/serializer
- @marko/runtime-tags/debug/html/template
- @marko/runtime-tags/debug/html/writer
- @marko/runtime-tags/debug/translator/core/attrs
- @marko/runtime-tags/debug/translator/core/await
- @marko/runtime-tags/debug/translator/core/client
- @marko/runtime-tags/debug/translator/core/const
- @marko/runtime-tags/debug/translator/core/debug
- @marko/runtime-tags/debug/translator/core/define
- @marko/runtime-tags/debug/translator/core/effect
- @marko/runtime-tags/debug/translator/core/export
- @marko/runtime-tags/debug/translator/core/for
- @marko/runtime-tags/debug/translator/core/html-comment
- @marko/runtime-tags/debug/translator/core/html-script
- @marko/runtime-tags/debug/translator/core/html-style
- @marko/runtime-tags/debug/translator/core/id
- @marko/runtime-tags/debug/translator/core/if
- @marko/runtime-tags/debug/translator/core/import
- @marko/runtime-tags/debug/translator/core/index
- @marko/runtime-tags/debug/translator/core/let
- @marko/runtime-tags/debug/translator/core/lifecycle
- @marko/runtime-tags/debug/translator/core/log
- @marko/runtime-tags/debug/translator/core/return
- @marko/runtime-tags/debug/translator/core/script
- @marko/runtime-tags/debug/translator/core/server
- @marko/runtime-tags/debug/translator/core/static
- @marko/runtime-tags/debug/translator/core/style
- @marko/runtime-tags/debug/translator/core/try
- @marko/runtime-tags/debug/translator/index
- @marko/runtime-tags/debug/translator/util/assert
- @marko/runtime-tags/debug/translator/util/binding-has-downstream-expressions
- @marko/runtime-tags/debug/translator/util/entry-builder
- @marko/runtime-tags/debug/translator/util/evaluate
- @marko/runtime-tags/debug/translator/util/for-each-identifier
- @marko/runtime-tags/debug/translator/util/get-defined-binding-expression
- @marko/runtime-tags/debug/translator/util/get-known-attr-values
- @marko/runtime-tags/debug/translator/util/get-parent-tag
- @marko/runtime-tags/debug/translator/util/get-root
- @marko/runtime-tags/debug/translator/util/get-style-file
- @marko/runtime-tags/debug/translator/util/get-tag-name
- @marko/runtime-tags/debug/translator/util/is-core-tag
- @marko/runtime-tags/debug/translator/util/is-only-child-in-parent
- @marko/runtime-tags/debug/translator/util/is-stateful
- @marko/runtime-tags/debug/translator/util/is-static
- @marko/runtime-tags/debug/translator/util/marko-config
- @marko/runtime-tags/debug/translator/util/nested-attribute-tags
- @marko/runtime-tags/debug/translator/util/normalize-string-expression
- @marko/runtime-tags/debug/translator/util/optional
- @marko/runtime-tags/debug/translator/util/plugin-hooks
- @marko/runtime-tags/debug/translator/util/references
- @marko/runtime-tags/debug/translator/util/runtime
- @marko/runtime-tags/debug/translator/util/runtime-info
- @marko/runtime-tags/debug/translator/util/scope-read
- @marko/runtime-tags/debug/translator/util/sections
- @marko/runtime-tags/debug/translator/util/signals
- @marko/runtime-tags/debug/translator/util/simplify-fn
- @marko/runtime-tags/debug/translator/util/state
- @marko/runtime-tags/debug/translator/util/tag-name-type
- @marko/runtime-tags/debug/translator/util/to-first-expression-or-block
- @marko/runtime-tags/debug/translator/util/to-first-statement-or-block
- @marko/runtime-tags/debug/translator/util/to-property-name
- @marko/runtime-tags/debug/translator/util/translate-attrs
- @marko/runtime-tags/debug/translator/util/translate-var
- @marko/runtime-tags/debug/translator/util/traverse
- @marko/runtime-tags/debug/translator/util/visitors
- @marko/runtime-tags/debug/translator/util/walks
- @marko/runtime-tags/debug/translator/util/with-previous-location
- @marko/runtime-tags/debug/translator/util/writer
- @marko/runtime-tags/debug/translator/visitors/cdata
- @marko/runtime-tags/debug/translator/visitors/comment
- @marko/runtime-tags/debug/translator/visitors/declaration
- @marko/runtime-tags/debug/translator/visitors/document-type
- @marko/runtime-tags/debug/translator/visitors/function
- @marko/runtime-tags/debug/translator/visitors/import-declaration
- @marko/runtime-tags/debug/translator/visitors/placeholder
- @marko/runtime-tags/debug/translator/visitors/program/dom
- @marko/runtime-tags/debug/translator/visitors/program/html
- @marko/runtime-tags/debug/translator/visitors/program/index
- @marko/runtime-tags/debug/translator/visitors/referenced-identifier
- @marko/runtime-tags/debug/translator/visitors/scriptlet
- @marko/runtime-tags/debug/translator/visitors/tag/attribute-tag
- @marko/runtime-tags/debug/translator/visitors/tag/custom-tag
- @marko/runtime-tags/debug/translator/visitors/tag/dynamic-tag
- @marko/runtime-tags/debug/translator/visitors/tag/index
- @marko/runtime-tags/debug/translator/visitors/tag/native-tag
- @marko/runtime-tags/debug/translator/visitors/text
- @marko/runtime-tags/dom
- @marko/runtime-tags/dom/abort-signal
- @marko/runtime-tags/dom/compat
- @marko/runtime-tags/dom/control-flow
- @marko/runtime-tags/dom/controllable
- @marko/runtime-tags/dom/dom
- @marko/runtime-tags/dom/event
- @marko/runtime-tags/dom/parse-html
- @marko/runtime-tags/dom/queue
- @marko/runtime-tags/dom/reconcile
- @marko/runtime-tags/dom/renderer
- @marko/runtime-tags/dom/resolve-cursor-position
- @marko/runtime-tags/dom/resume
- @marko/runtime-tags/dom/schedule
- @marko/runtime-tags/dom/scope
- @marko/runtime-tags/dom/signals
- @marko/runtime-tags/dom/template
- @marko/runtime-tags/dom/walker
- @marko/runtime-tags/html
- @marko/runtime-tags/html/attrs
- @marko/runtime-tags/html/compat
- @marko/runtime-tags/html/content
- @marko/runtime-tags/html/dynamic-tag
- @marko/runtime-tags/html/for
- @marko/runtime-tags/html/inlined-runtimes
- @marko/runtime-tags/html/serializer
- @marko/runtime-tags/html/template
- @marko/runtime-tags/html/writer
- @marko/runtime-tags/package.json
- @marko/runtime-tags/tag-types/await.d.marko
- @marko/runtime-tags/tag-types/const.d.marko
- @marko/runtime-tags/tag-types/debug.d.marko
- @marko/runtime-tags/tag-types/define.d.marko
- @marko/runtime-tags/tag-types/do.d.marko
- @marko/runtime-tags/tag-types/effect.d.marko
- @marko/runtime-tags/tag-types/id.d.marko
- @marko/runtime-tags/tag-types/let.d.marko
- @marko/runtime-tags/tag-types/lifecycle.d.marko
- @marko/runtime-tags/tag-types/log.d.marko
- @marko/runtime-tags/tag-types/script.d.marko
- @marko/runtime-tags/tag-types/try.d.marko
- @marko/runtime-tags/translator
- @marko/runtime-tags/translator/core/attrs
- @marko/runtime-tags/translator/core/await
- @marko/runtime-tags/translator/core/client
- @marko/runtime-tags/translator/core/const
- @marko/runtime-tags/translator/core/debug
- @marko/runtime-tags/translator/core/define
- @marko/runtime-tags/translator/core/effect
- @marko/runtime-tags/translator/core/export
- @marko/runtime-tags/translator/core/for
- @marko/runtime-tags/translator/core/html-comment
- @marko/runtime-tags/translator/core/html-script
- @marko/runtime-tags/translator/core/html-style
- @marko/runtime-tags/translator/core/id
- @marko/runtime-tags/translator/core/if
- @marko/runtime-tags/translator/core/import
- @marko/runtime-tags/translator/core/index
- @marko/runtime-tags/translator/core/let
- @marko/runtime-tags/translator/core/lifecycle
- @marko/runtime-tags/translator/core/log
- @marko/runtime-tags/translator/core/return
- @marko/runtime-tags/translator/core/script
- @marko/runtime-tags/translator/core/server
- @marko/runtime-tags/translator/core/static
- @marko/runtime-tags/translator/core/style
- @marko/runtime-tags/translator/core/try
- @marko/runtime-tags/translator/index
- @marko/runtime-tags/translator/util/assert
- @marko/runtime-tags/translator/util/binding-has-downstream-expressions
- @marko/runtime-tags/translator/util/entry-builder
- @marko/runtime-tags/translator/util/evaluate
- @marko/runtime-tags/translator/util/for-each-identifier
- @marko/runtime-tags/translator/util/get-defined-binding-expression
- @marko/runtime-tags/translator/util/get-known-attr-values
- @marko/runtime-tags/translator/util/get-parent-tag
- @marko/runtime-tags/translator/util/get-root
- @marko/runtime-tags/translator/util/get-style-file
- @marko/runtime-tags/translator/util/get-tag-name
- @marko/runtime-tags/translator/util/is-core-tag
- @marko/runtime-tags/translator/util/is-only-child-in-parent
- @marko/runtime-tags/translator/util/is-stateful
- @marko/runtime-tags/translator/util/is-static
- @marko/runtime-tags/translator/util/marko-config
- @marko/runtime-tags/translator/util/nested-attribute-tags
- @marko/runtime-tags/translator/util/normalize-string-expression
- @marko/runtime-tags/translator/util/optional
- @marko/runtime-tags/translator/util/plugin-hooks
- @marko/runtime-tags/translator/util/references
- @marko/runtime-tags/translator/util/runtime
- @marko/runtime-tags/translator/util/runtime-info
- @marko/runtime-tags/translator/util/scope-read
- @marko/runtime-tags/translator/util/sections
- @marko/runtime-tags/translator/util/signals
- @marko/runtime-tags/translator/util/simplify-fn
- @marko/runtime-tags/translator/util/state
- @marko/runtime-tags/translator/util/tag-name-type
- @marko/runtime-tags/translator/util/to-first-expression-or-block
- @marko/runtime-tags/translator/util/to-first-statement-or-block
- @marko/runtime-tags/translator/util/to-property-name
- @marko/runtime-tags/translator/util/translate-attrs
- @marko/runtime-tags/translator/util/translate-var
- @marko/runtime-tags/translator/util/traverse
- @marko/runtime-tags/translator/util/visitors
- @marko/runtime-tags/translator/util/walks
- @marko/runtime-tags/translator/util/with-previous-location
- @marko/runtime-tags/translator/util/writer
- @marko/runtime-tags/translator/visitors/cdata
- @marko/runtime-tags/translator/visitors/comment
- @marko/runtime-tags/translator/visitors/declaration
- @marko/runtime-tags/translator/visitors/document-type
- @marko/runtime-tags/translator/visitors/function
- @marko/runtime-tags/translator/visitors/import-declaration
- @marko/runtime-tags/translator/visitors/placeholder
- @marko/runtime-tags/translator/visitors/program/dom
- @marko/runtime-tags/translator/visitors/program/html
- @marko/runtime-tags/translator/visitors/program/index
- @marko/runtime-tags/translator/visitors/referenced-identifier
- @marko/runtime-tags/translator/visitors/scriptlet
- @marko/runtime-tags/translator/visitors/tag/attribute-tag
- @marko/runtime-tags/translator/visitors/tag/custom-tag
- @marko/runtime-tags/translator/visitors/tag/dynamic-tag
- @marko/runtime-tags/translator/visitors/tag/index
- @marko/runtime-tags/translator/visitors/tag/native-tag
- @marko/runtime-tags/translator/visitors/text
Readme
A declarative, HTML-based language that makes building web apps fun 🔥
Docs ∙ Try Online ∙ Contribute ∙ Get Support
Intro
Marko is HTML reimagined as a language for building dynamic and reactive user interfaces. Almost any valid HTML is valid Marko, and Marko extends HTML for building modern applications more declaratively. Among these extensions are components, conditionals and loops, and a full reactivity system.
Example Component
The following renders a button and a counter of how many times the button has been pressed:
click-count.marko
// HTML + JavaScript = 💜
<let/count=0>
<button onClick() { count++ }>
Clicked ${count} times
</button>Getting Started
npm init marko- Read the docs
Community & Support
|
Hang out in our Discord server to ask questions & discuss marko |
Keep up with the community on Bluesky at @markojs.com |
Tweet to @MarkoDevTeam or use the #markojs hashtag |
Browse the code, open issues, & make pull requests on GitHub |
Contributors
Marko would not be what it is without all those who have contributed ✨
Get Involved!
- Pull requests are welcome!
- Submit GitHub issues for any feature enhancements, bugs, or documentation problems
- Read the Contribution Tips and Guidelines
- Participants in this project agree to abide by its Code of Conduct