Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature list #13

Open
86 tasks
jimafisk opened this issue May 17, 2023 · 1 comment
Open
86 tasks

Feature list #13

jimafisk opened this issue May 17, 2023 · 1 comment

Comments

@jimafisk
Copy link
Member

Feature list from Rustle. Not aiming to implement all of these, just a good reference for the many things that Svelte is doing.

  • on:click event handler
  • arrow function with single assignment
  • display variable (eg. {counter})
  • scoped CSS
  • reactive declarations (currently only simple assignment declarations work)

Feature roadmap:

  • Dynamic attributes ({class} instead of class={class})
  • Styling (<style></style>)
  • Nested components
  • HTML tags ({@html htmlString})
  • Reactivity
    • Reactive assignments (on:click={handleClick})
    • Reactive declarations ($: doubled = count * 2)
    • Reactive statements
  • Props
    • Declaring props
    • Default values
    • Spread props
  • Logic
    • If blocks
    • Else blocks
    • Else-if blocks
    • Each blocks
    • Keyed each blocks
    • Await blocks
  • Events
    • DOM events
    • Inline handlers
    • Event modifiers
    • Component events
    • Event forwarding
    • DOM event forwarding
  • Bindings
    • Text inputs
    • Numeric inputs
    • Checkbox inputs
    • Group inputs
    • Textarea inputs
    • File inputs
    • Select bindings
    • Select multiple
    • Each block bindings
    • Media elements
    • Dimensions
    • bind:this={canvas}
    • Component bindings
  • Lifecycle
    • onMount
    • onDestroy
    • beforeUpdate and afterUpdate
    • tick
  • Stores
    • Writable stores
    • Auto-subscriptions
    • Readable stores
    • Derived stores
    • Custom stores
  • Motion
    • Tweened
    • Spring
  • Transitions
    • Adding parameters
    • In and out
    • Custom CSS transitions
    • Custom JS transitions
    • Transition events
    • Deferred transitions
  • Animations
  • Easing
  • Actions
    • Use directive
    • Adding parameters
  • Components
    • Slots
    • Slot fallbacks
    • Named slots
    • Slot props
    • Conditional slots
  • Special elements
    • <svelte:self>
    • <svelte:component>
    • <svelte:element>
    • <svelte:window>
    • <svelte:body>
    • <svelte:head>
  • Named exports
  • @debug tag
@jimafisk
Copy link
Member Author

I don't want to include any animation/transition declarations in our library. At first glance those are nice when adding/removing elements from the page, but these have always been finicky in Svelte imo and I often end up reworking them to use native CSS transitions instead. As much as possible I like to stick with existing browser standards so a wider range of tutorials apply and have the added benefit of keeping a smaller footprint for this project.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant