DivKit is an open source Server-Driven UI (SDUI) framework. SDUI is a an emerging technique that leverage the server to build the user interfaces of their mobile app
OTHER License
Published by divkit 6 months ago
integer
to number
inside evaluable expressions.is_enabled
for input
.restrict_parent_scroll
to restrict both directionsdiv-input
toString()
method support in expressions.Published by divkit 7 months ago
divkit-asset://
container
element.is_enabled
property in input
.Published by divkit 7 months ago
item-builder
property in container
.clear_focus
which removes focus from any focused view.id
requirement for div-state
.state
changes.clear_focus
which removes focus from any focused view.preload_required
property for the video
component.visibility_actions
, disappear_actions
and tooltips
in patch
es.text
styles were not updated when the expression was changed.tel:
schema in actions.items
/ states
in container
, tabs
and state
.Patch
declaration.Published by divkit 7 months ago
restrict_parent_scroll
.clear_focus
which removes focus from any focused view inside Div2View.custom
layout params.Published by divkit 7 months ago
tabs
component with the match_parent
and wrap_content
heights with the constrained
flag.tabs
component.scroll_to_start
, scroll_to_end
, scroll_backward
, scroll_forward
, scroll_to_position
in gallery
. Updated set_previous_item
and set_next_item
to support step
argument.scroll_to_start
, scroll_to_end
in tabs
and pager
. Updated set_previous_item
and set_next_item
to support step
argument.gallery
scroll actions and RTL layout direction.integer
-> number
in expressions is supported.Published by divkit 8 months ago
pager
on view rebind.keyboard_type
= password
has been supported for input
.fill
.putOrUpdate
method on a DivVariableController
with already known variables.Complex rebind
enabled by default.scroll_to_start
, scroll_to_end
, scroll_backward
, scroll_forward
, scroll_to_position
.tabs
title.keyboard_type
= password
has been supported for input
.Published by divkit 8 months ago
complexRebind
flag (can be enabled using the DivConfiguration builder).scroll_to_start
, scroll_to_end
, scroll_backward
, scroll_forward
.div-text
with fixed line height.GestureExtensionHandler
introduced.visibility_duration
and disappear_duration
properties in actions
now supports the value 0.Published by divkit 8 months ago
image
, gif-image
and video
.Published by divkit 8 months ago
pager
using focus.separator
and image
without any action
or accessibility
block are excluded from accessibility.video
to fields with variables
focus_element
action support.auto
div-accessibility.type
.div-input
.DivStateManager
.action
in URL handling.preload_required
property in image
, gif
and text
components.max_lines
and auto_ellipsize
on the same text
component.path
property.Published by divkit 9 months ago
getArrayFromDict
, getDictFromDict
, getOptArrayFromDict
, getOptDictFromDict
.slider
.div-pager
and div-tabs
.DivData
parsing.slider
with two thumbs.gallery
markup in several cases.input
focus outlines in several cases.integer
variable.state
patches.Published by divkit 9 months ago
div-tabs
when scrolling.div-pager
with infinite-scroll
.div-gallery
forward/backward by N-items using div-action
.DivReporter.reportAction
.list
value support for div-accessibility.type
.item_builder
property support in the container
component.getDictFromDict
, getArrayFromDict
, getOptArrayFromDict
and getOptDictFromDict
functions.RTL
layout (with the direction
configuration property).Published by divkit 9 months ago
hash()
method for Divs.DivConfiguration.Builder#divPlayerPreloader
. Also implemented ExoPlayerVideoPreloader
, which can be used to preload videos if you are using ExoDivPlayerFactory
as your video player.div-action
call to DivActionHandler
methods.visibility_change
animationDivView
size calculation.transition_in
, transition_out
, transition_change
, action_animation
and animation_in
/ animation_out
from the tooltip
will now use system setting "prefers reduced motion".Published by vyaivanove 9 months ago
state
does not switch inside div-custom
.is_enabled
for action
.len(array)
function in evaluable.div-container
.div-text
.div-gallery
.is_enabled
property in div-action
.DivText.text
property type from CFString
to String
.DivContainer
without items behavior.FunctionsProvider
.visibility_action
s restart on variable changes and their cleanup.is_enabled
flag inside all types of actions.clip_to_bounds
property support for the container
component.wrap_content
image
s in Safari.variable_triggers
logic to match other platforms. Now they are executed, even if not all variables are present.variable_triggers
to be executed only after components mount.auto_ellipsize
property support in text
component.setData
and video
updates.null
value processing in array
getter functions.fixed
function.Published by 4eb0da 10 months ago
clip_to_bounds
property in div-container
.div-text
.div-separator
.div-container
.div-slider
.div-gallery
items.div-input
.div-text
.DivVariableStorage
change events.DivData
parsing.DivBlockModelingContext
cloning.lottie
animations load errors.Published by lunarstill 10 months ago
non_empty_string
type.minItems
restrictions.items
property in container
, gallery
, pager
and grid
became not required.item_builder
property in DivContainer
.scrollbar
property in DivGallery
.clipToBounds
parameter in DivContainer
.Variable
and other related types (such as StringVariable
) are now classes, not interfaces. In most cases, all the code will work the same way, but in rare cases it may break something. Also note that it is now possible to check variable type with the instanceof
, which works as a type-guard in TypeScript (getValue()
will return a value with the correct type). Previously, this was not possible because only getType
existed, and TypeScript would not use it as a type-guard.pager
on the desktop
platform. There are new customization options for these arrows. Also note that the platform
can be configured using the render
method.lottie
extension has been changed. This was required to fix the issue with simultaneous display of fallback gif
with lottie
itself. If you are providing a similar extension created from scratch, you may need to change it a bit.!:
for expressions.match_parent
inside the container
with the size of wrap_content
and orientation
= overlap
.len
function for array variables.transition_change
property.items
) is now allowed.tabs
and states
(note that patches require exactly one element for each change, unlike other types of components).text
component with an empty text
property is now allowed.()
in expressions.setData
. This method allows you to quickly redraw the DivKit card using a new json, much more efficiently than directly destroying and recreating it again.getArrayInteger
, getIntegerFromArray
, getArrayOptInteger
, getOptIntegerFromArray
, getDictInteger
, getIntegerFromDict
, getDictOptInteger
, getOptIntegerFromDict
, copySign
.separators
in container
in the ssr
mode.grid
, gallery
and pager
are now allowed.Published by lunarstill 11 months ago
!:
operator.Published by gulevsky 11 months ago
getStoredUrlValue
functions.DivCustom
.UserInterfaceAction.Payload.json
usage.DivPager
state updating.scrollbar
property support in gallery
.gif_url
error. Also the gif
component now uses gif_url
and image
uses image_url
, instead of both of them consuming any of these 2 properties.padding
attribute from html.image
s (and gif
s) to load error. Note "empty image" here is an image
with an image_url
property equal to empty://
.Published by gulevsky 11 months ago
getUrlValue
, getUrlFromArray
, getUrlFromDict
.getOptColorFromDict
, getDictOptColor
.change_bounds
animations content scale.focus
property support in slider
component.focus_element
typed action support.Published by ttokarev 11 months ago
toString(url)
, toUrl(str)
and toColor(str)
.scale
property support in the video
component.DivState
has empty states
array.DivInput
inside DivGallery
.DivInput
not working in DivPager
.copy_to_clipboard
action support.match_parent
size logic in combination with the wrap_content
size of the container itself.gallery
scrolling with wrap_content
and max_size
property.Published by ttokarev 12 months ago
ClassCastException
when using DivGallery
or DivGridLayout
.DivCustom
wrong ids for DivGallery
items.VideoDurationExtensionHandler
.container
with space-evenly
and space-around
alignment.props
and variables
for custom
components.array_insert_value
and array_remove_value
typed actions.execAction
method.