mirror of
https://github.com/Maks1mS/bubbles.git
synced 2025-10-18 16:38:56 +03:00
Compare commits
5 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
dbd40713ce | ||
|
54a0d84255 | ||
|
004511e00f | ||
|
7fa53ea961 | ||
|
0cc5e71a63 |
73
README.md
73
README.md
@@ -1,34 +1,79 @@
|
||||
# Bubbles
|
||||
Bubbles
|
||||
=======
|
||||
|
||||
Some components for [Bubble Tea](https://github.com/charmbraclet/bubbletea):
|
||||
<p>
|
||||
<a href="https://pkg.go.dev/github.com/charmbracelet/bubbles?tab=doc"><img src="https://godoc.org/github.com/golang/gddo?status.svg" alt="GoDoc"></a>
|
||||
<a href="https://github.com/charmbracelet/bubbles/actions"><img src="https://github.com/charmbracelet/glow/workflows/build/badge.svg" alt="Build Status"></a>
|
||||
</p>
|
||||
|
||||
Some components for [Bubble Tea](https://github.com/charmbraclet/bubbletea) applications.
|
||||
|
||||
These components are used in production in [Glow][glow] and [Charm][charm].
|
||||
|
||||
[glow]: https://github.com/charmbraclet/glow
|
||||
[charm]: https://github.com/charmbraclet/charm
|
||||
|
||||
* Spinner
|
||||
* Text Input
|
||||
* Paginator
|
||||
* Viewport
|
||||
|
||||
## Spinner
|
||||
|
||||
A spinner, useful for indicating that some kind of invisible operation is
|
||||
happening. There are a couple default ones, but you can also pass your own
|
||||
”frames.”
|
||||
<img src="https://stuff.charm.sh/bubbles-examples/spinner.gif" width="400" alt="Spinner Example">
|
||||
|
||||
A spinner, useful for indicating that some kind an operation is happening.
|
||||
There are a couple default ones, but you can also pass your own ”frames.”
|
||||
|
||||
* [Example code](https://github.com/charmbracelet/tea/tree/master/examples/spinner/main.go)
|
||||
|
||||
|
||||
## Text Input
|
||||
|
||||
A text input field, akin to an `<input type="text">` in HTML.
|
||||
<img src="https://stuff.charm.sh/bubbles-examples/textinput.gif" width="400" alt="Text Input Example">
|
||||
|
||||
A text input field, akin to an `<input type="text">` in HTML. Supports unicode,
|
||||
pasting, in-place scrolling when the value exceeds the width of the element and
|
||||
the common, and many customization options.
|
||||
|
||||
* [Example code, one field](https://github.com/charmbracelet/tea/tree/master/examples/textinput/main.go)
|
||||
* [Example code, many fields](https://github.com/charmbracelet/tea/tree/master/examples/textinput/main.go)
|
||||
|
||||
|
||||
## Paginator
|
||||
|
||||
<img src="https://stuff.charm.sh/bubbles-examples/pagination.gif" width="200" alt="Paginator Example">
|
||||
|
||||
A component for handling pagination logic and optionally drawing pagination UI.
|
||||
Supports "dot-style" pagination (similar to what you might see on iOS) and
|
||||
numeric page numbering, but you could also just use this component for the
|
||||
logic and visualize pagination however you like.
|
||||
|
||||
This component is used in [Glow][glow] to browse documents and [Charm][charm] to
|
||||
browse SSH keys.
|
||||
|
||||
|
||||
## Viewport
|
||||
|
||||
A viewport for vertically scrolling content which optionally includes standard
|
||||
<img src="https://stuff.charm.sh/bubbles-examples/viewport.gif" width="600" alt="Viewport Example">
|
||||
|
||||
A viewport for vertically scrolling content. Optionally includes standard
|
||||
pager keybindings and mouse wheel support. A high performance mode is available
|
||||
for applications which make use of the alterate screen buffer. This is
|
||||
generally only necessary when dealing with content with a very large amount of
|
||||
ANSI escape sequences.
|
||||
for applications which make use of the alterate screen buffer.
|
||||
|
||||
* [Example code](https://github.com/charmbracelet/tea/tree/master/examples/pager/main.go)
|
||||
|
||||
This compoent is well complimented with [Reflow][reflow] for ANSI-aware
|
||||
indenting and text wrapping.
|
||||
|
||||
[reflow]: https://github.com/muesli/reflow
|
||||
|
||||
|
||||
## License
|
||||
|
||||
[MIT](https://github.com/charmbracelet/teaparty/raw/master/LICENSE)
|
||||
|
||||
|
||||
***
|
||||
|
||||
A [Charm](https://charm.sh) project.
|
||||
|
||||
<img alt="the Charm logo" src="https://stuff.charm.sh/charm-badge.jpg" width="400">
|
||||
|
||||
Charm热爱开源!
|
||||
|
@@ -37,21 +37,6 @@ type Model struct {
|
||||
lines []string
|
||||
}
|
||||
|
||||
// TODO: do we really need this?
|
||||
func NewModel(width, height int) Model {
|
||||
return Model{
|
||||
Width: width,
|
||||
Height: height,
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: do we really need this?
|
||||
func (m Model) SetSize(yPos, width, height int) {
|
||||
m.YPosition = yPos
|
||||
m.Width = width
|
||||
m.Height = height
|
||||
}
|
||||
|
||||
// AtTop returns whether or not the viewport is in the very top position.
|
||||
func (m Model) AtTop() bool {
|
||||
return m.YOffset <= 0
|
||||
|
Reference in New Issue
Block a user