diff --git a/Documentation/UIKit.md b/Documentation/UIKit.md
index 2f8e1e6..58a57ab 100644
--- a/Documentation/UIKit.md
+++ b/Documentation/UIKit.md
@@ -21,7 +21,211 @@ Every section is a collapsible block — click a heading to expand it.
## Layout & Constraints
-
+
+UIView — programmatic constraints, chainable anchors
+
+### `enum AnchorType`
+The anchor to pin when using `setConstraintsTo`. Cases: `all`, `top`, `bottom`,
+`leading`, `trailing`, `left`, `right`, `centerX`, `centerY`, `width`, `heigth`
+*(sic)*, `topToBottom`, `bottomToTop`, `leadingToTrailing`, `trailingToLeading`,
+plus `…GreaterThanOrEqualTo` / `…LessThanOrEqualTo` variants.
+
+### `@discardableResult func setConstraintsTo(parentView: UIView, anchorType: AnchorType, value: CGFloat, safeArea: Bool = false) -> Self`
+Activate one constraint against `parentView`. Remembers `parentView` (in
+`viewReference`) so follow-up calls can omit it. `safeArea: true` pins top/bottom
+to the safe-area guide (iOS 11+).
+
+```swift
+card.addSubview(label)
+label.setConstraintsTo(parentView: card, anchorType: .top, value: 12, safeArea: false)
+ .setConstraints(.leading, 16)
+ .setConstraints(.trailing, -16)
+```
+
+### `@discardableResult func setConstraintsTo(_ parentView:_ anchorType:_ value:_ safeArea: Bool = false) -> Self`
+Positional-argument shorthand for the above.
+
+### `@discardableResult func setConstraintsTo(anchorType: AnchorType, value: CGFloat, safeArea: Bool = false) -> UIView`
+Reuse the last `parentView` (`viewReference`). **Traps** with `fatalError` if no
+`parentView` was set first.
+
+### `@discardableResult func setConstraints(_ anchorType: AnchorType, _ value: CGFloat, _ safeArea: Bool = false) -> UIView`
+Positional shorthand for the reuse form — the one you chain.
+
+### `func setConstraints(_ toScrollView: UIScrollView, direction: UICollectionView.ScrollDirection = .vertical)`
+Pin `self` as the single content view of a scroll view (edges + matching
+width/height, with a low-priority constraint on the scroll axis). Traps if
+`self` is itself a `UIScrollView`.
+
+```swift
+scrollView.addSubview(content)
+content.setConstraints(scrollView, direction: .vertical)
+```
+
+### Constraint accessors
+`widthConstraint`, `heightConstraint`, `leadingConstraint`, `trailingConstraint`,
+`topConstraint`, `bottomConstraint`, `centerXConstraints`, `centerYConstraints` —
+the first matching `NSLayoutConstraint` found by walking up the hierarchy.
+
+```swift
+box.widthConstraint?.constant = 120
+UIView.animate(withDuration: 0.2) { self.view.layoutIfNeeded() }
+```
+
+### `func findConstraint(attribute: NSLayoutConstraint.Attribute, for view: UIView) -> NSLayoutConstraint?`
+Search self and ancestors for a constraint on `attribute` involving `view`.
+
+### `func constraints(on anchor:) -> [NSLayoutConstraint]`
+Constraints touching a given `NSLayoutYAxisAnchor` / `XAxisAnchor` / `Dimension` of `self`.
+
+### `@discardableResult func setHeight(size:) -> Self` / `setHeight(min:)` / `setWidth(size:)` / `setWidth(min:)`
+Activate a fixed or minimum dimension constraint.
+
+```swift
+avatar.setWidth(size: 44).setHeight(size: 44)
+```
+
+### `func setWidth(_ toView: UIView? = nil, constant: CGFloat, _ multiplier: CGFloat = 0) -> Self` / `setHeight(...)`
+Dimension relative to another view (`multiplier`) or fixed (`multiplier == 0`).
+
+### Frame setters
+`setX(x:)`, `setY(y:)`, `setFrameWidth(width:)`, `setFrameHeight(height:)` — mutate
+`self.frame` directly (manual layout, not Auto Layout).
+
+
+
+
+UIView — hierarchy, appearance, effects
+
+### `static var className: String`
+`String(describing: self)`.
+
+```swift
+UIButton.className // "UIButton"
+```
+
+### `func addSubview(_ subview:, translatesAutoresizingMaskIntoConstraints: Bool = false)` / `addSubviews(_ subviews: [UIView], …)`
+Add a view (or many) and set `translatesAutoresizingMaskIntoConstraints` in one call.
+
+```swift
+view.addSubviews([header, body, footer]) // all ready for Auto Layout
+```
+
+### `func subviews(ofType _: T.Type) -> [T]`
+All descendants of a type, recursively.
+
+```swift
+formView.subviews(ofType: UITextField.self)
+```
+
+### `func findAView(_ ofType: T.Type) -> T?`
+First descendant of a type.
+
+### `var parentViewController: UIViewController?`
+Nearest owning view controller (walks the responder chain).
+
+### `var borderColor: UIColor?` / `var borderWidth: CGFloat` / `var cornerRadius: CGFloat`
+Layer border/corner shortcuts (`cornerRadius` also sets `masksToBounds`).
+
+```swift
+card.cornerRadius = 12
+card.borderWidth = 1
+card.borderColor = .separator
+```
+
+### `func setRadius(top: Bool, bottom: Bool, radius: CGFloat = 8)`
+Round only the top and/or bottom corners.
+
+```swift
+sheet.setRadius(top: true, bottom: false, radius: 16)
+```
+
+### `func applyShadow(color:offSet:radius:opacity:shouldRasterize: Bool = true, rasterizationScaleTo: = UIScreen.main.scale)` / `func removeShadow()`
+Layer shadow with rasterisation on by default.
+
+```swift
+card.applyShadow(color: .black, offSet: CGSize(width: 0, height: 2),
+ radius: 6, opacity: 0.15)
+```
+
+### `func insertBlurView(style: UIBlurEffect.Style, color: UIColor = .black, alpha: CGFloat = 0.9)`
+Insert a full-bleed `UIVisualEffectView` behind the content.
+
+### `func drawCircle(inCoord x:y:with radius:strokeColor: = .red, fillColor: = .gray, isEmpty: Bool = false) -> [String: Any]`
+Add a circular `CAShapeLayer`; returns `["path": UIBezierPath, "layer": CAShapeLayer]`.
+
+### `var isRightToLeft: Bool`
+Effective RTL layout direction.
+
+### `var screenshot: UIImage?` / `func asImage() -> UIImage`
+Render the view to an image (`screenshot` via the legacy context, `asImage` via `UIGraphicsImageRenderer`).
+
+```swift
+let png = chartView.asImage().pngData()
+```
+
+### `var globalPoint: CGPoint?` / `var globalFrame: CGRect?` / `var absolutePosition: CGRect`
+Origin/frame converted to window coordinates.
+
+### `func fadeIn(withDuration: TimeInterval = 1, withDelay: TimeInterval = 0, completionHandler: @escaping (Bool) -> Void)` / `func fadeOut(...)`
+Animate `alpha` to 1 / 0. *(Completion-handler API — pre-dates async/await.)*
+
+```swift
+overlay.fadeOut { _ in overlay.removeFromSuperview() }
+```
+
+### `var viewReference: UIView?`
+Scratch reference used internally by the chained `setConstraintsTo` calls.
+
+
+
+
+GradientOrientation / EnumBorderSide
+
+### `enum GradientOrientation`
+`topRightBottomLeft`, `topLeftBottomRight`, `horizontal`, `vertical` — maps to a
+`CAGradientLayer` start/end point pair. Passed to gradient helpers elsewhere in
+the package.
+
+### `enum EnumBorderSide`
+`top`, `bottom`, `left`, `right` — which edge to draw a single-side border on.
+
+
+
+
+UIStackView — convenience init, bulk arranged-subview ops (iOS 9+)
+
+### `convenience init(arrangedSubviews: [UIView]? = nil, axis: = .vertical, spacing: = 0, alignment: = .fill, distribution: = .fill, layoutMargins: = .zero, isMarginsRelative: Bool = true)`
+One-call configured stack view.
+
+```swift
+let stack = UIStackView(arrangedSubviews: [title, subtitle],
+ axis: .vertical, spacing: 4)
+```
+
+### `func addArrangedSubviews(_ views: [UIView], translateAutoresizing: Bool = false)`
+Add many arranged subviews, setting their autoresizing flag.
+
+### `func removeAllArrangedSubviews(deactivateConstraints: Bool = true)`
+Remove and dispose every arranged subview.
+
+### `func removeSubview(view: UIView, deactivateConstraints: Bool = true)`
+Remove one arranged subview (optionally deactivating its constraints and removing from the hierarchy).
+
+### `func addSpace(_ size: CGFloat, backgroundColor: UIColor = .clear)`
+Insert a fixed-size spacer view sized along the stack's axis.
+
+```swift
+stack.addArrangedSubviews([row1, row2])
+stack.addSpace(24)
+stack.addArrangedSubview(row3)
+```
+
+
+
+> `NSLayoutConstraint` helpers (`constraintWithMultiplier`, `matches(view:anchor:)`)
+> and `[NSLayoutConstraint].filtered(view:anchor:)` are `internal` — used by the
+> `UIView.constraints(on:)` accessors above, not called directly.
## Views & Controls