From fcb41025c4c7ca2f67b0f0e7299e2519fd7ce0a0 Mon Sep 17 00:00:00 2001 From: joaquinelio Date: Tue, 22 Sep 2020 01:57:33 -0300 Subject: [PATCH 1/3] sombrasnadamas --- 8-web-components/3-shadow-dom/article.md | 110 +++++++++++------------ 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/8-web-components/3-shadow-dom/article.md b/8-web-components/3-shadow-dom/article.md index fafc4754c..4d8bad751 100644 --- a/8-web-components/3-shadow-dom/article.md +++ b/8-web-components/3-shadow-dom/article.md @@ -1,32 +1,32 @@ # Shadow DOM -Shadow DOM serves for encapsulation. It allows a component to have its very own "shadow" DOM tree, that can't be accidentally accessed from the main document, may have local style rules, and more. +Shadow DOM sirve para el encapsulamiento. Le permite a un componente tener su propio árbol DOM oculto, que no puede ser accedido por accidente desde el documento principal, puede tener reglas de estilo locales, y más. -## Built-in shadow DOM +## Shadow DOM incorporado -Did you ever think how complex browser controls are created and styled? +¿Alguna vez pensó cómo los controles complejos del navegador se crean y se les aplica estilo? -Such as ``: +Tales como ``:

-The browser uses DOM/CSS internally to draw them. That DOM structure is normally hidden from us, but we can see it in developer tools. E.g. in Chrome, we need to enable in Dev Tools "Show user agent shadow DOM" option. +El navegador usa DOM/CSS internamente para dibujarlos. Esa estructura DOM normalmente está oculta para nosotros, pero podemos verla con herramientas de desarrollo. Por ejemplo en Chrome, necesitamos habilitar la opción "Show user agent shadow DOM" en "herramientas". -Then `` looks like this: +Entonces `` se ve algo así: ![](shadow-dom-range.png) -What you see under `#shadow-root` is called "shadow DOM". +Lo que ves bajo `#shadow-root` se llama "shadow DOM". -We can't get built-in shadow DOM elements by regular JavaScript calls or selectors. These are not regular children, but a powerful encapsulation technique. +No podemos obtener los elementos de shadow DOM incorporados con llamadas normales a JavaScript o selectores. Estos no son hijos normales sino una poderosa técnica de encapsulamiento. -In the example above, we can see a useful attribute `pseudo`. It's non-standard, exists for historical reasons. We can use it style subelements with CSS, like this: +En el ejemplo de abajo podemos ver un útil atributo `pseudo`. No es estándar, existe por razones históricas. Podemos usarlo para aplicar estilo a subelementos con CSS como aquí: ```html run autorun @@ -116,7 +116,7 @@ For example: ``` -1. The style from the document does not affect the shadow tree. -2. ...But the style from the inside works. -3. To get elements in shadow tree, we must query from inside the tree. +1. El estilo del documento no afecta al árbol shadow. +2. ...Pero el estilo interno funciona. +3. Para obtener los elementos en el árbol shadow, debemos buscarlos (query) desde dentro del árbol. -## References +## Referencias - DOM: -- Compatibility: -- Shadow DOM is mentioned in many other specifications, e.g. [DOM Parsing](https://w3c.github.io/DOM-Parsing/#the-innerhtml-mixin) specifies that shadow root has `innerHTML`. +- Compatibilidad: +- Shadow DOM es mencionado en muchas otras especificaciones, por ejemplo [DOM Parsing](https://w3c.github.io/DOM-Parsing/#the-innerhtml-mixin) especifica que que shadow root tiene `innerHTML`. -## Summary +## Resumen -Shadow DOM is a way to create a component-local DOM. +El Shadow DOM es una manera de crear un DOM de componentes locales. -1. `shadowRoot = elem.attachShadow({mode: open|closed})` -- creates shadow DOM for `elem`. If `mode="open"`, then it's accessible as `elem.shadowRoot` property. -2. We can populate `shadowRoot` using `innerHTML` or other DOM methods. +1. `shadowRoot = elem.attachShadow({mode: open|closed})` -- crea shadow DOM para `elem`. Si `mode="open"`, será accesible con la propiedad `elem.shadowRoot`. +2. Podemos llenar `shadowRoot` usando `innerHTML` u otros métodos DOM. -Shadow DOM elements: -- Have their own ids space, -- Invisible to JavaScript selectors from the main document, such as `querySelector`, -- Use styles only from the shadow tree, not from the main document. +Los elementos de Shadow DOM: +- Tienen su propio espacio de ids, +- Son invisibles a los selectores JavaScript desde el documento principal tales como `querySelector`, +- Usan style solo desde dentro del árbol shadow, no desde el documento principal. -Shadow DOM, if exists, is rendered by the browser instead of so-called "light DOM" (regular children). In the chapter we'll see how to compose them. +El Shadow DOM, si existe, es construido por el navegador en lugar del DOM visible llamado "light DOM" (hijo regular). En el capítulo veremos cómo se componen. From c29ea2e629761e3e34e0e99181696cb06a04d666 Mon Sep 17 00:00:00 2001 From: joaquinelio Date: Wed, 23 Sep 2020 14:35:34 -0300 Subject: [PATCH 2/3] Apply suggestions from code review Co-authored-by: Valentina VP <34555644+vplentinax@users.noreply.github.com> --- 8-web-components/3-shadow-dom/article.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/8-web-components/3-shadow-dom/article.md b/8-web-components/3-shadow-dom/article.md index 4d8bad751..4950d0d1e 100644 --- a/8-web-components/3-shadow-dom/article.md +++ b/8-web-components/3-shadow-dom/article.md @@ -43,7 +43,7 @@ Seguidamente usaremos el moderno estándar shadow DOM cubierto en "otras especif Un elemento DOM puede tener dos tipos de subárboles DOM: -1. Light tree -- un subárbol normal, hecho de HTML hijos. Todos los subárboles vistos en capítulos previos eran "light". +1. Light tree -- un subárbol normal, hecho de hijos HTML. Todos los subárboles vistos en capítulos previos eran "light". 2. Shadow tree -- un subárbol shadow DOM, no reflejado en HTML, oculto a la vista. Si un elemento tiene ambos, el navegador solamente construye el árbol shadow. Pero también podemos establecer un tipo de composición entre árboles shadow y light. Veremos los detalles en el capítulo . @@ -67,7 +67,7 @@ customElements.define('show-hello', class extends HTMLElement { ``` -Así es como el DOM resultante se ve in las herramientas de desarrollador de Chrome, todo el contenido está bajo "#shadow-root": +Así es como el DOM resultante se ve en las herramientas de desarrollador de Chrome, todo el contenido está bajo "#shadow-root": ![](shadow-dom-say-hello.png) From ea751c2043da651bdd4ce0a405cfe9e5268be534 Mon Sep 17 00:00:00 2001 From: joaquinelio Date: Tue, 6 Oct 2020 21:59:03 -0300 Subject: [PATCH 3/3] "herramientas de desarrollo" MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ok. ¿buscaste "Show user agent shadow DOM"? Co-authored-by: Valentina VP <34555644+vplentinax@users.noreply.github.com> --- 8-web-components/3-shadow-dom/article.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/8-web-components/3-shadow-dom/article.md b/8-web-components/3-shadow-dom/article.md index 4950d0d1e..1f21748bf 100644 --- a/8-web-components/3-shadow-dom/article.md +++ b/8-web-components/3-shadow-dom/article.md @@ -12,7 +12,7 @@ Tales como ``:

-El navegador usa DOM/CSS internamente para dibujarlos. Esa estructura DOM normalmente está oculta para nosotros, pero podemos verla con herramientas de desarrollo. Por ejemplo en Chrome, necesitamos habilitar la opción "Show user agent shadow DOM" en "herramientas". +El navegador usa DOM/CSS internamente para dibujarlos. Esa estructura DOM normalmente está oculta para nosotros, pero podemos verla con herramientas de desarrollo. Por ejemplo en Chrome, necesitamos habilitar la opción "Show user agent shadow DOM" en las heramientas de desarrollo. Entonces `` se ve algo así: