k8ordo
  • UI
  • Form
  • State
  • Router
  • Static
  • Server
  • i18n
  • Color scheme
ダークモードに切り替え
  • Get Started
  • Theming
  • i18n
  • Components
  • AI
ナビゲーションを開く
Buttons
  • Button
  • IconButton
Navigation
  • Anchor
  • Tabs
  • Breadcrumb
  • Pagination
Forms
  • TextField
  • Textarea
  • NumberField
  • Select
  • Checkbox
  • CheckboxCard
  • CheckboxGroup
  • Switch
  • PasswordInput
  • Radio
  • RadioCard
  • Autocomplete
  • Slider
  • FileField
  • FormControl
  • Form
Data Display
  • Accordion
  • Avatar
  • Badge
  • Card
  • Code
  • Table
  • Heading
Feedback
  • Alert
  • Skeleton
  • Spinner
  • Toast
  • Progress
Overlays
  • Dialog
  • Drawer
  • Modal
  • Popover
  • DropdownMenu
  • Tooltip
  • ListBox
Layout
  • Stack
  • Grid
  • Separator
  • ScrollLinked
Observers
  • InView
  • Resize
Media
  • Icons
k8ordo

Baselineに入った機能を、制限なく使うReactのライブラリ群。

パッケージ
  • @k8ordo/ui
  • @k8ordo/form
  • @k8ordo/state
  • @k8ordo/router
  • @k8ordo/static
  • @k8ordo/server
  • @k8ordo/i18n
  • @k8ordo/color-scheme
UI
  • Get Started
  • Theming
  • i18n
  • Components
  • AIチャット
  • Generative UI
  • AIエージェント
  • Storybook
リソース
  • GitHub
  • npm

© 2026 k8o — MIT License

組版 — Noto Sans JP / M PLUS 2

Components

Buttons
  • Button
  • IconButton
Navigation
  • Anchor
  • Tabs
  • Breadcrumb
  • Pagination
Forms
  • TextField
  • Textarea
  • NumberField
  • Select
  • Checkbox
  • CheckboxCard
  • CheckboxGroup
  • Switch
  • PasswordInput
  • Radio
  • RadioCard
  • Autocomplete
  • Slider
  • FileField
  • FormControl
  • Form
Data Display
  • Accordion
  • Avatar
  • Badge
  • Card
  • Code
  • Table
  • Heading
Feedback
  • Alert
  • Skeleton
  • Spinner
  • Toast
  • Progress
Overlays
  • Dialog
  • Drawer
  • Modal
  • Popover
  • DropdownMenu
  • Tooltip
  • ListBox
Layout
  • Stack
  • Grid
  • Separator
  • ScrollLinked
Observers
  • InView
  • Resize
Media
  • Icons

InView

子要素が画面やスクロール領域に入っているかを知らせるコンポーネント

Storybookで確認

インポート

使い方

基本的な使い方

縦書きプレビューに切り替え

一度だけ

onceを付けると、最初に見えた時点で観測をやめ、その後に外れてもfalseを知らせません。

縦書きプレビューに切り替え

子要素が複数あるとき

要素が複数あるときは、どれか1つでも見えていればtrueになります。後から増えたり外れたりした要素にも追従し、観測する要素が無い間はfalseです。

Props

children
Type: ReactNode
Default: -
onChange
Type: (isInView: boolean) => void
Default: -
once?
Type: boolean
Default: false
root?
Type: Element|null
Default: null
rootMargin?
Type: string
Default: '0px'
threshold?
Type: number
Default: 0
PropTypeDefault
childrenReactNode-
onChange(isInView: boolean) => void-
once?booleanfalse
root?Element|nullnull
rootMargin?string'0px'
threshold?number0
Out of view

Scroll down.

Target

Not seen yet

Scroll down, then back up. The badge stays.

Target

import { InView } from '@k8ordo/ui';
const [container, setContainer] = useState<HTMLElement | null>(null);
const [isInView, setIsInView] = useState(false);

<div ref={setContainer} className="h-48 overflow-y-auto">
  <InView onChange={setIsInView} root={container}>
    <p>Target</p>
  </InView>
</div>
<InView once onChange={setHasBeenSeen} root={container}>
  <p>Target</p>
</InView>