docs/api/view.md
Create and layout native views.
Process: Main
This module cannot be used until the ready event of the app
module is emitted.
const { BaseWindow, View } = require('electron')
const win = new BaseWindow()
const view = new View()
view.setBackgroundColor('red')
view.setBounds({ x: 0, y: 0, width: 100, height: 100 })
win.contentView.addChildView(view)
A basic native view.
Process: Main
View is an EventEmitter.
[!WARNING] Electron's built-in classes cannot be subclassed in user code. For more information, see the FAQ.
new View()Creates a new View.
Objects created with new View emit the following events:
Emitted when the view's bounds have changed in response to being laid out. The
new bounds can be retrieved with view.getBounds().
Objects created with new View have the following instance methods:
view.addChildView(view[, index])view View - Child view to add.index Integer (optional) - Index at which to insert the child view.
Defaults to adding the child at the end of the child list.If the same View is added to a parent which already contains it, it will be reordered such that it becomes the topmost view.
view.removeChildView(view)view View - Child view to remove.If the view passed as a parameter is not a child of this view, this method is a no-op.
view.setBounds(bounds[, options])bounds Rectangle - New bounds of the View.options Object (optional) - Options for setting the bounds.
animate boolean | Object (optional) - If true, the bounds change will be animated. If an object is passed, it can contain the following properties:
duration Integer (optional) - Duration of the animation in milliseconds. Default is 250.easing string (optional) - Easing function for the animation. Default is linear.
linearease-inease-outease-in-outview.getBounds()Returns Rectangle - The bounds of this View, relative to its parent.
view.setBackgroundColor(color)color string - Color in Hex, RGB, ARGB, HSL, HSLA or named CSS color format. The alpha channel is
optional for the hex type.Examples of valid color values:
#fff (RGB)#ffff (ARGB)#ffffff (RRGGBB)#ffffffff (AARRGGBB)rgb\(([\d]+),\s*([\d]+),\s*([\d]+)\)
rgb(255, 255, 255)rgba\(([\d]+),\s*([\d]+),\s*([\d]+),\s*([\d.]+)\)
rgba(255, 255, 255, 1.0)hsl\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%\)
hsl(200, 20%, 50%)hsla\((-?[\d.]+),\s*([\d.]+)%,\s*([\d.]+)%,\s*([\d.]+)\)
hsla(200, 20%, 50%, 0.5)blueviolet or red[!NOTE] Hex format with alpha takes
AARRGGBBorARGB, notRRGGBBAAorRGB.
view.setBorderRadius(radius)radius Integer - Border radius size in pixels.[!NOTE] The area cutout of the view's border still captures clicks.
view.setVisible(visible)visible boolean - If false, the view will be hidden from display.view.getVisible()Returns boolean - Whether the view should be drawn. Note that this is
different from whether the view is visible on screen—it may still be obscured
or out of view.
Objects created with new View have the following properties:
view.children ReadonlyA View[] property representing the child views of this view.